initWithContentsOfURL突然出现“已弃用”错误

时间:2012-01-12 03:48:53

标签: iphone ios5 xcode4.2 initwithcontentsofurl

我刚刚第一次在新的XCode 4.2中打开了我的项目,我突然得到了一大堆这些警告:'initWithContentsOfURL:'已被弃用

这是代码 - 任何人都知道需要修复的是什么? (它在XCode 4.0中运行得非常好)

- (void)viewDidLoad
{

    NSURL *modelURL = [[NSBundle mainBundle] URLForResource:@"TermsConditions" withExtension:@"html"];
    NSString *myHtml = [[NSString alloc] initWithContentsOfURL:modelURL];
    [self.TermsWebView loadHTMLString:myHtml baseURL:modelURL];
    [myHtml release];
    [super viewDidLoad];
    // Do any additional setup after loading the view from its nib.
}

5 个答案:

答案 0 :(得分:4)

您需要使用initWithContentsOfURL方法:usedEncoding:error:

- (void)viewDidLoad
{ 

    NSURL *modelURL = [[NSBundle mainBundle] URLForResource:@"TermsConditions" withExtension:@"html"];

    NSStringEncoding *encoding;
    NSError *error;

    NSString *myHtml = [[NSString alloc] initWithContentsOfURL:modelURL usedEncoding:&encoding error:&error];
    [self.TermsWebView loadHTMLString:myHtml baseURL:modelURL];
    [myHtml release];
    [super viewDidLoad];
    // Do any additional setup after loading the view from its nib.
}

答案 1 :(得分:1)

当您收到不推荐使用给定方法的消息时,请检查the documentation以获取相关信息。在这种情况下,您会发现NSString参考页上不再列出-initWithContentsOfURL:

另一个有用的资源是相关类的头文件。如果你检查NSString.h,你会发现:

- (id)initWithContentsOfURL:(NSURL *)url DEPRECATED_IN_MAC_OS_X_VERSION_10_4_AND_LATER;

答案 2 :(得分:0)

该方法已被弃用并替换为

initWithContentsOfURL:enconding:错误

initWithContentsOfURL:usedEnconding:错误

干杯

答案 3 :(得分:0)

尝试这一点似乎没有错误

- (void)viewDidLoad

{

NSURL *modelURL = [[NSBundle mainBundle] URLForResource:@"TermsConditions" withExtension:@"html"];

NSStringEncoding *encoding = NULL;
NSError *error;

NSString *myHtml = [[NSString alloc] initWithContentsOfURL:modelURL usedEncoding:encoding error:&error];
[self.TermsWebView loadHTMLString:myHtml baseURL:modelURL];
[myHtml release];
[super viewDidLoad];
// Do any additional setup after loading the view from its nib.

}

答案 4 :(得分:0)

这似乎是正确的代码:

  

NSStringEncoding * encoding = NULL;   NSString * jsonReturn = [[NSString alloc] initWithContentsOfURL:url encoding:* encoding error:NULL];

只有在以下情况下才会消除警告: 1.您将编码初始化为NULL。 2.在编码之前输入*。