我敢肯定这是一个完整的菜鸟问题……但实际上我以前从未处理过这种情况,所以我有点困惑……
假设我有一个名为 person 的自定义对象,每个 person 对象都可以有一个“财产”数组,如果你愿意的话,这是一种库存。我会这样设置:
interface person : NSObject {
NSString *name;
NSMutableArray *posessions;
@property (copy) NSString *name;
@property (copy) NSMutableArray *posessions; // no idea if this is even necessary...
}
当然,我也会在实现文件中综合我的属性......现在,在我的实际控制器对象中,我将创建我的对象的一个实例(或者通常是一个实例数组,但对于这个例子,一个可以正常工作。 ..) 这样:
person *aPerson;
我知道要访问人名,我可以这样拨打电话:
[aPerson setName:@"Bob"];
并检索该名称,我可能会使用这个:
aVar = [aPerson name];
我坚持的是,我将如何向位于我的 person 类中的 NSMutableArray 添加或检索对象?假设我想对 NSMutable 数组使用“计数”方法。
我已经尝试过一些尝试和错误,例如:
[aPerson.posessions count];
[[aPerson posessions] count];
同样,要将对象添加到数组中,我经常使用:
[someArray addObject:anObject];
但这样的尝试没有奏效:
[aPerson.posessions addObject:anObject];
在阅读了一堆并搜索了网络之后,我似乎无法在我的自定义类中确切地找到如何与这个 NSMutableArray 交互。我敢肯定,这很明显,我只是不太明白,而且它已经成为一种心理障碍......
另外,我在合成 NSMutableArray 的访问器属性时是否正确?如果是这样,setX 和 X 似乎对 NSMutableArray 不太明显......除非它们只是将整个数组复制到局部变量中......
也许这是需要做的?使用访问器方法获取整个数组,将其放在局部变量中,进行更改,然后使用 set 访问器方法将整个数组放回我的人员对象?
有人可以告诉我我应该在这里使用的语法吗?
* 编辑 *
我想我会对这个问题做一些澄清。我的自定义对象(在上面的示例中,我的人员对象)基本上是数据库记录。我的项目中有几个正在使用的数据库,例如:
Person - NSObject 的自定义子类,包含多个 NSString 对象,以及 Ints 和 BOOL。
personDatabase - 一个 Person 对象数组(在我的主 CONTROLLER 对象中设置和控制)
所有的 set 和 get 方法都是从“控制器”调用的。
我一直在尝试做的是从我的 Controller 对象中直接访问 personDatabase 中包含的各个对象。我通过这种方式声明另一个对象来做到这一点:
Person *activePerson;
然后,我的所有调用都针对当前活动的 Person 记录(当前从 personDatabase 中选择的记录),例如:
someOutput = [activePerson name];
等等
有没有办法从我的 Controller 对象直接访问 activePerson 对象内的 NSMutableArray 对象内的对象?