addObject到NSArrayController

时间:2011-02-11 19:57:57

标签: cocoa nsarraycontroller

感谢您的帮助。

核心数据项目。我正在从文本文件导入文本,我想在NSTextView中显示它,其value绑定我已绑定到具有模型键路径selection的arrayController text。数组控制器包含我的实体的实例,该实体具有名为text的字符串属性。我想更新arrayController以获取绑定到textView的键值,以便保存它。构建时没有错误,但没有工作。我该怎么做?

id newObject = [arrayController newObject];

[arrayController addObject:newObject forKey:@"text"];

[newObject release];

1 个答案:

答案 0 :(得分:0)

[arrayController addObject:newObject forKey:@"text"];

这是“无效”,因为NSArrayController不响应此类消息。数组控制器控制数组,而不是键值映射;它没有可以为其添加对象的键。

反过来,这是因为“array” in Cocoa表示有序的连续列表,而不是关联数组。 Cocoa将键值映射/关联数组称为“dictionary”。

模型关键路径正好是:key path到要绑定文本视图的属性模型中。你似乎已经知道了;我假设你在这里输入text,因为它是你在模型中命名属性的。你的装订是正确的。

但这也意味着“text”与数组控制器无关。它是模型实体的属性,而不是控制器。您需要设置模型对象的属性 - 在本例中为newObject - 不在控制器中。