>“观察者”和“对象”参数的通知中心保留哪些类型的引用?
>从通知中心清除观察员的最佳做法是什么?
>多线程应用程序有什么特别的关注点,特别是对于’object’参数呢?
> GC和非GC环境中此方法的行为有什么区别?
>在这种方法的行为中,移动和桌面环境之间是否有明显的差异(从客户角度看)?
此外,对于覆盖这一点的现有文章的任何指针都将不胜感激。我有谷歌,但很惊讶地发现这些问题的深入讨论(虽然也许我没有使用正确的魔术关键词)。
解决方法
what types of references are kept by
the notification center of the
‘observer’ and ‘object’ arguments?
我相信一个薄弱的参考,虽然这只是从记忆(不是双关语)。
what are the best practices for
removing observers from the
notification center?
发布之前,请务必从通知中心删除注册的对象。如果对象的dealloc方法设置了注册本身,或者如果另一个对象正在管理通知订阅,则释放该对象的dealloc方法。记住这一点,以上并不重要。
what are the special concerns for
multi-threaded applications,
especially WRT the ‘object’ argument?
NSNotificationCenter在线程上工作正常,但是如果从后台线程发送通知,则对象将在同一线程上接收到该通知。由于这种行为,如果您正在更新UI或执行任何其他不是线程安全的操作(或者从主线程上的其他方法调度通知),则应该使用其他方法。
what are the differences in behavior
of this method in GC and non-GC
environments?
我不记得你需要担心的任何事情,虽然我还没有使用GC。
are the any significant differences
(from a client perspective) between
mobile and desktop environments in
this method’s behavior?
不是我听说过的,没有。当您注册对象时,您可以选择注册所有通知或仅注册某个对象的通知。如果您大量使用通知,后者可能会更快一些,但总是要确定。
Also,any pointers to existing
articles which cover this would be
greatly appreciated. I googled,but
was surprised to find little in-depth
discussion of these issues (although
maybe i didn’t use the right magic
keywords).
我认为这更是因为NSNotificationCenter一般来说很容易使用。如果你担心某些情况,不要害怕写一个快速的测试应用程序!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。