我写了一个小测试应用程序并且可以观察到打开选项后,整个contentArray被传递给绑定源的setValue:forKey:每当你编辑数组中元素的属性时.选项关闭时,仅修改元素对象本身,并且不通知绑定源.
这解释了为什么需要使NSUserDefaultsController工作的选项(否则它不会注意到您已经编辑了数组中的某些内容而从未保存更改).但它并没有解释谁在做什么不同的确切.阵列控制器是否负责此选项并在观察到更改时写回内容数组?如果是这样,它如何与选项的既定目的相关,即“使用可逆值变换器将复合值暂时转换成较小的部分”?
解决方法 这里解释的消息流很好: http://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/CocoaBindings/Concepts/MessageFlow.html#//apple_ref/doc/uid/TP40002149-186285这是我尝试回答的问题:
>使用valueForKeyPath从NSUserDefaultsController检索contentObject,contentArray或contentSet绑定指定的原始内容对象:>使用值转换器的transformedValue:方法转换内容对象>将用户的新值插入到已转换的内容对象中>使用inversetransformedValue对内容对象进行逆变换:>新的逆转换内容对象被设置为新的内容对象,并使用setValue:forKeyPath传递给NSUserDefaultsController:
总结以上是内存溢出为你收集整理的Cocoa绑定的NSHandlesContentAsCompoundValueBindingOption到底做了什么?全部内容,希望文章能够帮你解决Cocoa绑定的NSHandlesContentAsCompoundValueBindingOption到底做了什么?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)