
我已经在Mac上使用Objective-C,而且它具有KVC和绑定,似乎工作非常好,并且需要较少的代码. iPhone SDK似乎没有这个功能,所以我的问题是:
如果我有一个类保存更改的数据,那么我可以在该类注册一个UI组件的最佳方法是什么,以便可以通知需要显示的数据的更改?
键值观察(KVO)允许您观察对象的属性,包括甚至代表集合的属性,并通知该属性的更改.您只需要发送对象-addobserver:forKeyPath:options:context:传递要接收更新的对象,要接收更新的属性(相对于接收者)的关键路径以及更新的类型你想收到(如果要观察表示集合的属性,可以使用类似的方法.)
通知是较老和较重的.您注册一个NSNotificationCenter(通常是默认中心) – 一个对象和选择器对,以便在事件发生时传递通知.通知对象本身可以通过其userInfo属性包含任意数据,您可以选择观察特定名称的所有通知,而不是适用于特定对象的通知.
您应该在任何特定情况下使用?一般来说,如果您关心特定对象的特定属性的更改,请使用键值观察.这是它的设计,它是有意的轻量级. (除其他用途之外,它是构建Cocoa Bindings的基础.)如果您关心状态的更改,而不是由属性表示,则通知更为合适.
例如,当用户更改模型对象的名称时保持同步,我将使用KVO.要知道整个对象图保存的时间,我会使用通知.
总结以上是内存溢出为你收集整理的在Objective-c(iphone版)中观察器/观察器最好的方法是什么全部内容,希望文章能够帮你解决在Objective-c(iphone版)中观察器/观察器最好的方法是什么所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)