Geo*_*lly 4 concurrency cocoa key-value-observing nsoperation
我有一个窗口,反映了一个状态NSOperation.我应该如何绑定NSProgressIndicator到NSOperation进度属性?
AppKit不是线程安全的.对UI对象的任何更新都必须在主线程上进行.KVO不会跨线程发送观察消息.所以你需要和另一种更新进度指示器的方法不仅仅是简单的KVO.
在你NSOperation的main方法中,你需要定期发送进度消息.最简单的方法是使用NSNotificationCenter自定义通知,以便主线程可以监听更新.(请注意,通知始终在发送它们的线程上传递,因此您需要使用该performSelectorOnMainThread:方法确保在UI线程上传递通知.)
在主线程中,您需要将您的类添加为观察者以接收这些通知并更新进度指示器.如果要对进度指示器使用绑定,可以将其绑定到控制器对象上的属性,当您从中接收进度通知时,该属性会更新NSOperation.
| 归档时间: |
|
| 查看次数: |
1760 次 |
| 最近记录: |