gpt4 book ai didi

cocoa - 没有数组的 NSArrayController

转载 作者:行者123 更新时间:2023-12-03 16:56:14 28 4
gpt4 key购买 nike

我刚刚意识到有两种方法可以使用 NSArrayController。

将 Controller 绑定(bind)到数组并向数组添加对象。或者根本不使用任何数组,直接将对象添加到 Controller 中。

[racesArray addObject: [[Race alloc] initWithName:@"Human"] ];

或者

[myRacesController addObject: [[Race alloc] initWithName:@"Human"] ];

由于两个版本都可以很好地满足我的需求,我想知道哪种是正确的使用方法。我想使用数组可能会更好,但是既然 NSArrayController 也能够存储数据,为什么我不应该使用这个功能呢?

最佳答案

不要像第一个示例中那样直接与数组对话。除非您明确发布有关更改的 KVO 通知,否则阵列 Controller 不会发现您的更改,这很麻烦并且很容易忘记。

我推荐的方式是绑定(bind)数组 Controller ,然后实现KVC-compliant array accessor methods为您的属性,并在应用中的任何地方使用它们(类的 initdealloc 方法除外)。

这样,您的对象就可以改变自己的数组,而无需显式发布 KVO 通知或了解数组 Controller 。

关于cocoa - 没有数组的 NSArrayController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1633231/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com