我刚刚第一次在新的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.
}
答案 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.在编码之前输入*。