我正在尝试在后台线程上执行操作。过去我用过
[self performSelectorInBackground: @selector (getSetDisplay) withObject: nil];
来完成这个任务。但是,我已经注册了要在 NSNotification 中执行的此函数,并且我需要为 UIActivityIndicator 制作动画。 UIActivityIndicator(据我了解)需要在主线程上运行,但此通知也在执行此操作并阻止它。
- (IBAction) btnRefresh_clicked :(id)sender{
[activity startAnimating];
[navigationUpdateFromDetail setUpdate: NO];
[navigationUpdateFromDetail.locationManager startUpdatingLocation];
[[NSNotificationCenter defaultCenter] addObserver: self selector : @selector (getSetDiplay) name: @"LocationUpdated" object: nil];
}
有人知道如何让它在后台线程上运行吗?感谢是提前。
最佳答案
看一下 NSObject 方法 performSelectorOnMainThread:withObject:waitUntilDone:
- 它允许您在主线程上运行一个方法,例如 startAnimating
,同时仍将当前执行的方法保留在后台。
关于iphone - 使用 NSNotification 在后台线程上执行方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1999200/