我正在尝试使用NSMutableDictionary记录的NSMutableArrayController在NSTableView中显示内容。
我按照以下步骤操作:
在应用程序委托类中,我创建了一个名为'geniuses'的NSMutableArray对象,并存储了一些带有键的NSMutableDictionary对象:'geniusName'和'domain'。
我在IB中获取了一个NSArrayController对象,将其控制器内容属性绑定到应用程序委托类,并将其模型关键路径设置为“geniuses”。在属性检查器窗格中,将模式设置为类,将类名设置为NSMutableDictionary。添加 键:'geniusName'和'domain'到它。
在IB中我拿了一个表视图对象。将其内容属性绑定到数组控制器,将控制器关键路径设置为排列对象。第一列到数组控制器的Binded值属性,控制器键路径设置为排列对象,模型键路径设置为'geniusName'。第二列的二进制值属性为数组控制器,控制器键路径设置为已排列对象,模型键路径设置为“geniusName”。
在我尝试构建和运行项目后执行以下步骤后,我找到了未填充的表视图。
有人可以建议我在哪里错吗?
谢谢,
Miraaj
答案 0 :(得分:1)
我现在无法检查您的代码。你如何填充genuises阵列?您必须实现key-value-coding accessor methods并在插入或删除数组中的数据时使用它们以生成KVO通知。
答案 1 :(得分:1)
我假设您为可变数组声明了一个实例变量:
NSMutableArray *myObjects;
但你真的创建了数组吗?
变量只是指向数组对象的指针的容器。您仍然需要创建一个数组对象并将其指针放在变量中,可能在您的应用程序委托的init
或initWithCoder:
方法中。
忘记这样做是您遇到问题的常见原因。在创建数组之前,实例变量包含nil
,并且所有尝试将事物放入或从不存在的数组中检索事物都是nil
的消息,它们什么也不做。