在我的应用程序中,我使用NSUserDefaults给出一个状态,然后根据该状态执行操作.在其他地方,我正在使用NSNotification-s来解雇其他类中的方法.我觉得有一个例子,特别是使用自定义委托会更好.
使用NSNotification和自定义委托与使用NSUserDefaults时我正在做什么相比有什么好处和缺点?
我的问题专门用于解决使用NSUserDefaults给状态与使用协议或NSNotificationCenter简单调用方法之间的任何性能或潜在问题.
重要的是要记住NSUserDefaults持久化数据.当您从NSUserDefaults读取和写入时,您实际上正在读取和写入光盘.每当你使用NSUserDefaults时,你应该问自己"这是否需要在应用程序启动之间保留?是否/我应该在没有写入光盘的情况下做这件事吗?" (关于性能的注意事项:任何时候你必须去光盘的东西,期望花更长的时间)
NSUserDefaults非常适合应用程序设置等.您的应用有多种颜色方案,用户可以选择吗?将这些首选项存储在用户默认值中,稍后再查找.
我会将NSUserDefaults与其他通信模式放在不同的类别中,例如委托,通知,块,KVO,目标操作.
这是一篇关于iOS中通信模式的精彩文章:http://www.objc.io/issue-7/communication-patterns.html.这详细介绍了每一个以及它们的作用,我发现它们的流程图非常有用.本文还讨论了KVO(键值观察)和块(Swift中的闭包).
代表:

两者之间的一个很大区别,即流程图中的逻辑分支,即收件人是否知道发件人.您经常会听到通知被称为一对多通信,其中委托是一对一的.
声明:

| 归档时间: |
|
| 查看次数: |
1198 次 |
| 最近记录: |