集合变更观察与相关概念解析
1. 集合变更观察基础
当与概念名称相对应的内部状态发生变化时,根键路径末端的值会相应改变。 bind_toObject_withKeyPath_options 方法接受一个选项参数。Cocoa 提供了大量默认选项名称,这些选项假定绑定对象是用户界面控件。例如,其中一些选项用于管理对象选择的处理方式。这些选项在相关文档中有简要描述。
2. 键值观察与数组
键值观察也可用于数组(以及未使用过的 NSSet 类)。以下是一个示例类:
class ArrayHolder < OSX::NSObject
kvc_array_accessor :values
def initWithValues(*initial_values)
@values = NSMutableArray.arrayWithArray(initial_values)
self
end
def values; @values; end
end
kvc_array_accessor 表明 values 属性是 Cocoa 文档中所说的多对多关系。该类未定义常规的 getter 和 setter 方法,因为数组的操作方式不同,以下测试可以说明:
def setup
@watcher = rubycocoa_flexmock
@observ
超级会员免费看
订阅专栏 解锁全文
1379

被折叠的 条评论
为什么被折叠?



