can*_*boy 21 iphone objective-c key-value-observing nsarray nsarraycontroller
我已经在SO上查看了使用键值观察的示例NSArray(或者NSMutableArray),显然你需要使用NSArrayController(不像KVO我不熟悉的),但我没有找到如何执行此操作的具体示例.有人可以解释一些示例代码吗?
例如,如果我有一个GameModel代表其播放器名称NSArray (playerNameArray)的a NSStrings.我想观察那些字符串(视图控制器观察模型的数据)来更新视图中的各种内容.
如何获得播放器名称数组已更改的通知?
编辑:iOS SDK甚至支持NSArrayController吗?如果没有,还有另一种方式吗?
kpe*_*yua 31
您不需要NSArrayController来观察对的更改NSArray.但是你不能直接观察这些变化,也就是说,你不能-addObserver:forKeyPath:options:context:直接打电话给NSArray.你的情况,你怎么称呼它在你GameModel用@"playerNameArray"的关键.
你还没有完成.正常的自动KVO通知只有在您调用时才会启动-setPlayerNameArray:,从而替换整个阵列.如果你想更精细的通知,那么你需要使用-willChange:valuesAtIndexes:forKey:和-didChange:valuesAtIndexes:forKey:每次插入,删除或替换物品阵列英寸
这将在数组内容发生更改时发送通知.根据NSKeyValueObservingOptions您在添加观察者时的使用情况,您还可以获得所做的增量更改 - 这是一个很酷的功能,但在这种情况下您可能不需要它.
注意:iOS上不存在NSArrayController.它是Cocoa Bindings的一部分,目前只存在于Mac OS X上的AppKit中.幸运的是,你不需要它.
| 归档时间: |
|
| 查看次数: |
13236 次 |
| 最近记录: |