0

为什么我的标签不会更新?

- (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 是因为其他两个都在工作。

4

1 回答 1

3

如果您在设置文本并打印 self.label 的描述之后立即设置断点,是否显示文本已更改?如果是这样,它必须在此方法触发后在其他地方重置。如果 self.label 为零,那就是你的问题

于 2013-06-08T14:20:08.757 回答