Я хочу обновлять текст моей метки каждый раз, когда получаю уведомление от nsmanageObjContext.setText в UIlabel после вызова уведомления не имеет эффекта
это мой код для добавления наблюдателя:
- (IBAction)requestFotPhoto {
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(updateLabel) name:NSManagedObjectContextDidSaveNotification
object:self.facebook.managedObjectContext];
и это способ для обновления метки:
-(void)updateLabel
{
NSString *text = [NSString stringWithFormat:@"Downalad %i pictures",[Photo NumeberOfAllPhotosFromContext:self.facebook.managedObjectContext]];
dispatch_async(dispatch_get_main_queue(), ^{
//UIKIT method
NSLog(@"text %@",text);
[self.downlaodLabel setText:text];
});
}
я считать, что updateLabel является выполнение в другом потоке, так что я выполните инструкции по обновлению метки в основном потоке, но этот код не влияет. в чем проблема?
очевидно NSlog распечатать правильное сообщение!
спасибо!
Вы видите какие-либо предупреждения? Я думаю, вы не можете использовать переменную, объявленную за пределами такого блока. –
никаких предупреждений или ошибок. в другой ситуации я использую локальную переменную внутри блока, и все работает нормально. –
Если вы не делаете что-то странное, методы 'IBAction' вызываются в основном потоке. Действительно ли 'downlaodLabel' что-то задает? – Wain