3

我正在尝试使用 NSMutableDictionary 记录的 NSMutableArrayController 在 NSTableView 中显示内容。

我按照下面写的步骤操作:

  1. 在应用程序委托类中,我创建了一个名为“geniuses”的 NSMutableArray 对象,并存储了一些带有键的 NSMutableDictionary 对象:“geniusName”和“domain”。

  2. 我在 IB 中获取了一个 NSArrayController 对象,将其控制器内容属性绑定到应用程序委托类,并将其模型键路径设置为“天才”。在属性检查器窗格中,将模式设置为类,将类名设置为 NSMutableDictionary。添加了键:“geniusName”和“域”。

  3. 在 IB 我拿了一个表格视图对象。将其内容属性绑定到数组控制器,控制器键路径设置为排列对象。其第一列的值属性绑定到数组控制器,控制器键路径设置为排列对象,模型键路径设置为“geniusName”。其第二列的值属性绑定到数组控制器,控制器键路径设置为排列对象,模型键路径设置为“geniusName”。

在我尝试构建和运行项目时遵循这些步骤后,我发现未填充的表视图。

谁能建议我哪里可能错了?

谢谢,

米拉杰

4

2 回答 2

1

我假设您为可变数组声明了一个实例变量:

NSMutableArray *myObjects;

但是你真的创建了数组吗?

变量只是指向数组对象的指针的容器。您仍然需要创建一个数组对象并将其指针放在变量中,可能在您的应用程序委托initinitWithCoder:方法中。

忘记这样做是您所看到的问题的常见原因。在您创建数组之前,实例变量包含nil,并且所有尝试将事物放入不存在的数组或从不存在的数组中检索事物的尝试都是发往 的消息nil,它们什么都不做。

于 2010-05-12T06:36:24.520 回答
1

我现在无法检查您的代码。你是如何填充 geniuses 数组的?您必须实现键值编码访问器方法并在从数组中插入或删除数据时使用这些方法以生成 KVO 通知。

于 2010-05-11T16:40:43.913 回答