iphone - 使用 NSNotification 在后台线程上执行方法

标签 iphone objective-c multithreading nsnotifications

我正在尝试在后台线程上执行操作。过去我用过

  [self performSelectorInBackground: @selector (getSetDisplay) withObject: nil];

来完成这个任务。但是,我已经注册了要在 NSNotification 中执行的此函数,并且我需要为 UIActivityIndi​​cator 制作动画。 UIActivityIndi​​cator(据我了解)需要在主线程上运行,但此通知也在执行此操作并阻止它。

- (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/

相关文章:

iphone - Xcode 4,git 和 merge 项目文件!

ios - 自动移动 UIScrollView 区域的可见性

ios - iOS 上异步调用的最佳性能是什么?

ios - 如何将其他NSManagedObjects存储为NSManagedObject的属性

iphone - 使用 "inserted"行初始化 UITableView

php - 从 iPhone 上的 HTTP 请求中获取一个数组作为答案

objective-c - 正态分布函数

objective-c - uitableviewcell 分隔符在 ios 8 中移动

multithreading - 使用线程和信号量时的段错误,Mac Vs Linux

c# - 从不同线程调用方法 AutoResetEvent 是否安全?