-1

我刚刚第一次在新的 XCode 4.2 中打开我的项目,突然收到一大堆警告:'initWithContentsOfURL:' is deprecated

这是代码 - 有人知道这里需要修复什么吗?(它在 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.
}
4

5 回答 5

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.
}
于 2012-01-12T03:53:33.250 回答
1

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

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

- (id)initWithContentsOfURL:(NSURL *)url DEPRECATED_IN_MAC_OS_X_VERSION_10_4_AND_LATER;
于 2012-01-12T04:10:46.173 回答
0

该方法已被弃用并由

initWithContentsOfURL:enconding:错误

或者

initWithContentsOfURL:usedEnconding:错误

干杯

于 2012-06-24T16:09:42.620 回答
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.

}

于 2013-01-16T17:47:20.053 回答
0

这似乎是正确的代码:

NSStringEncoding *encoding = NULL; NSString *jsonReturn = [[NSString alloc]initWithContentsOfURL:url 编码:*编码错误:NULL];

只有在 1.you 将编码初始化为 NULL 时才会消除警告。2.在编码前加一个*。

于 2013-02-09T10:57:13.380 回答