initWithContentsOfURL неожиданно выдает "устаревшую" ошибку - PullRequest
0 голосов
/ 12 января 2012

Я только что открыл свой проект в новом 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 ]

4 голосов
/ 12 января 2012

Вам необходимо использовать метод 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 голос
/ 12 января 2012

Когда вы получаете сообщение о том, что данный метод устарел, проверьте документацию для информации.В этом случае вы обнаружите, что -initWithContentsOfURL: больше не отображается на странице ссылок NSString.

Другим полезным ресурсом является файл заголовка для рассматриваемого класса.Если вы проверите NSString.h, вы найдете:

- (id)initWithContentsOfURL:(NSURL *)url DEPRECATED_IN_MAC_OS_X_VERSION_10_4_AND_LATER;
0 голосов
/ 09 февраля 2013

Кажется, это правильный код:

NSStringEncoding * encoding = NULL;NSString * jsonReturn = [[NSString alloc] initWithContentsOfURL: кодировка URL: * ошибка кодирования: NULL];

Предупреждения будут устранены только в том случае, если: 1. Вы инициализируете кодирование в NULL.2. Поместите * перед кодированием.

0 голосов
/ 16 января 2013

Попробуйте, похоже, без ошибок

- (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.

}

0 голосов
/ 24 июня 2012

Этот метод устарел и заменен на

initWithContentsOfURL: enconding: ошибка

или

initWithContentsOfURL: usedEnconding: ошибка

Приветствия

...