Прежде всего, я очень ценю вашу помощь.Свойство AppDelegate неожиданно установлено на нуль
Ну, я использую три объекта NSString, общие для двух видов. И эти взгляды отделяются встроенным NavigationController, я имею в виду, что я начинаю программировать с помощью SingleView.
В AppDelegate.h, я пишу
@property (weak, nonatomic) NSString *crntURL;
@property (weak, nonatomic) NSString *crntTitle;
@property (weak, nonatomic) NSString *crntHTML;
для делегирования.
И в первый взгляд, у меня есть WebView и написать
-(void)webViewDidFinishLoad:(UIWebView *)webView
{
AppDelegate *appDelegate = [[UIApplication sharedApplication] delegate];
[UIApplication sharedApplication].networkActivityIndicatorVisible = NO;
NSString *url = [[NSString alloc] initWithString:[myWebView stringByEvaluatingJavaScriptFromString:@"document.URL"]];
NSString *title = [[NSString alloc] initWithString:[myWebView stringByEvaluatingJavaScriptFromString:@"document.title"]];
NSString *html = [[NSString alloc] initWithString:[myWebView stringByEvaluatingJavaScriptFromString:@"document.all[0].outerHTML"]];
appDelegate.crntTitle = nil;
appDelegate.crntTitle = [[NSString alloc] initWithString:title];
appDelegate.crntHTML = nil;
appDelegate.crntHTML = [[NSString alloc] initWithString:html];
appDelegate.crntURL = nil;
appDelegate.crntURL = [[NSString alloc] initWithString:url];
}
Вот, когда я ставлю NSLog, ожидаемый исходный HTML-код сбрасывается.
И во второй точке зрения (подкласс UIViewController), я пишу
- (void)viewDidLoad
{
// Do any additional setup after loading the view.
AppDelegate *appDelegate = [[UIApplication sharedApplication] delegate];
sourceHTML.text = appDelegate.crntHTML;
NSLog(@"%@", appDelegate.crntHTML);
NSLog(@"%@", appDelegate.crntURL);
NSLog(@"%@", appDelegate.crntTitle);
[super viewDidLoad];
}
и только crntHTML неожиданно устанавливаются в нуль, а crntURL и crntTitle сохранить значение.
Есть ли у вас идеи?
Заранее спасибо.
Масару
Почему все звонки на '[NSString initWithString]'? Первые несколько, вероятно, хорошо, но последние три полностью избыточны. – Mac
Первые несколько полностью избыточны. Локальные переменные неявно '__strong', поэтому бизнес' alloc'/'initWithString' вам не нужен, чтобы справиться с ссылкой. Если вы хотите убедиться, что одна из ваших переменных содержит отдельную копию строки, лучше использовать 'copy'. – rickster