我放了一个NSLog并观看了。日志显示几乎快,我的功能(更改标签文本)运行良好。但是,我可以在模拟器上看到更改标签的文本大约4~5秒后再调用函数。
我的第一个方法就是这个
第二是
嗯......我怎样才能提高其变化速度?
答案 0 :(得分:5)
更改标签文本应该“几乎立即”发生,并且当它花费这么长时间时,通常是由于没有更新主线程上的标签文本。它是一个UIKit对象,因此只能在主线程上进行修改。
使用:
dispatch_async(dispatch_get_main_queue(), ^{
self.label.text = myString;
});
答案 1 :(得分:1)
从Calendar中获取具有几乎相同延迟的事件时,我遇到了类似的问题。如果Inafziger建议的内容对您不起作用,我建议您使用performSelectorOnMainThread:
并在“步骤3”中调用一种更新标签的方法。
[self performSelectorOnMainThread:@selector(yourMethodToUpdateLabels) withObject:nil waitUntilDone:NO];
这对我的情况很有帮助。希望能帮助到你。 :)