nsstring - вне области видимости - PullRequest
0 голосов
/ 17 мая 2010
-(void)loadWebAdress:(NSString*)textAdress {
    [UIApplication sharedApplication].networkActivityIndicatorVisible = YES;
    adressurl=[NSString stringWithFormat:@"http://%@", textAdress];
    NSURL *url=[NSURL URLWithString:adressurl];
    NSURLRequest *requestObj=[NSURLRequest requestWithURL:url]; 
    [webview loadRequest:requestObj];
}

, хотя url берет свое значение из adressurl, adressurl все время находится вне области при проверке в отладчике что здесь происходит? Я хотел бы использовать его в некоторых других местах. не только в этом методе. потому что выходит за рамки, приложение вылетает. Но, повторяю, это тот, кто придает значение URL.

1 Ответ

1 голос
/ 17 мая 2010

Зависит от того, где объявлена ​​переменная adressurl. Поскольку он генерируется из параметра метода, кажется странным, что вы захотите использовать его в другом месте кода. Если у вас есть это как статическая переменная, это может быть растоптано другим кодом. (Например, если вы установите одно значение в этом методе, а другое в другом месте, нет ничего необычного в сбоях, особенно если вы не координируете или не синхронизируете их. Вы можете использовать одно и то же имя локальной переменной в разных методах, если хотите.

Вот что я бы предложил вместо этого: ( Примечание: я исправил некоторые опечатки. )

- (void) loadWebAddress:(NSString*)textAddress {
    [UIApplication sharedApplication].networkActivityIndicatorVisible = YES;
    NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"http://%@", textAddress]];
    [webview loadRequest:[NSURLRequest requestWithURL:url]];
}

Это короче и позволяет избежать ненужных переменных. Поскольку префикс "http://" является довольно распространенным, это не похоже на повторное использование, которое даст такую ​​большую выгоду. Есть что-то еще, что я пропускаю?


Редактировать: Чтобы уточнить опечатку в моем комментарии, вы можете получить URL в виде строки из UIWebView следующим образом:

[[[webview request] URL] absoluteString]

При этом используются следующие методы:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...