【发布时间】:2011-10-21 16:58:58
【问题描述】:
如何确保我的函数只在主线程上运行?它会更新 UI 元素。
这样的功能是否被认为是“坏的”?
-(void)updateSomethingOnMainThread {
if ( ![[NSThread currentThread] isEqual:[NSThread mainThread]] )
[self performSelectorOnMainThread:_cmd withObject:nil waitUntilDone:NO];
else {
// Do stuff on main thread
}
}
我这样写是为了避免有第二个功能,最初我是这样写的:
-(void)updateSomethingOnMainThread_real {
// Do stuff on main thread
}
-(void)updateSomethingOnMainThread {
[self performSelectorOnMainThread:@selector(updateSomethingOnMainThread_real) withObject:nil waitUntilDone:NO];
}
【问题讨论】:
标签: iphone objective-c