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 ответов
Вам нужно использовать метод 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.
}
Когда вы получите сообщение о том, что данный метод устарел, проверьте информацию в документации. В этом случае вы обнаружите, что -initWithContentsOfURL:
больше не отображается на странице ссылок NSString.
Другим полезным ресурсом является заголовочный файл для рассматриваемого класса. Если вы проверите NSString.h, вы найдете:
- (id)initWithContentsOfURL:(NSURL *)url DEPRECATED_IN_MAC_OS_X_VERSION_10_4_AND_LATER;
Этот метод устарел и заменен
initWithContentsOfURL:enconding: ошибка
или же
initWithContentsOfURL:usedEnconding: ошибка
ура
Попробуйте это, кажется, без ошибок
- (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.
}
Кажется, это правильный код:
NSStringEncoding * encoding = NULL; NSString * jsonReturn = [[NSString alloc] initWithContentsOfURL: кодировка URL: * ошибка кодирования:NULL];
Предупреждения будут устранены только в том случае, если: 1. Вы инициализируете кодировку в NULL. 2. Поставьте * перед кодированием.