По какой причине мой ярлык не будет обновляться?
- (void)setLabel:(NSNotification*)notification {
dispatch_async(dispatch_get_main_queue(), ^{
NSLog(@"setLabel");
[self.label setText:@"My Label"];
});
}
Я также пытался использовать PerformSelectorOnMainThread безрезультатно.
Обратите внимание, что setLabel отображается в журнале.
Дополнительная информация:
У меня также есть две другие функции, которые делают то же самое, но только с другим текстом. Две другие функции не имеют dispatch_async, но обе они работают. Кроме того, уведомление о двух рабочих функциях было отправлено NSURLConnection (метод № 2 в этом сообщении). В то время как уведомление о неработающей функции выше было отправлено вызовом FBRequestConnection (см. этот пост).
Для ясности две мои другие рабочие функции выглядят следующим образом:
- (void)setLabel2:(NSNotification*)notification {
NSLog(@"setLabel2");
[self.label setText:@"My Label 2"];
}
- (void)setLabel3:(NSNotification*)notification {
NSLog(@"setLabel3");
[self.label setText:@"My Label 3"];
}
Да, я пытался удалить dispatch_async в своем коде. На самом деле изначально не было dispatch_async, потому что работали два других.
nil
разрешена в Objective-C. Это ничего не делает. Вам нужно выяснить, почемуself.label
равно нулю. - person rob mayoff   schedule 09.06.2013self.label
указывает не на метку на экране, а на что-то другое. Попробуйте позвонить[self.label setText:]
в другом месте, например, вviewDidLoad
, и убедитесь, что он действительно обновляется, и с помощьюNSLog
убедитесь, что это один и тот же адрес. - person Rob Napier   schedule 09.06.2013