在objective-c中访问可变对象数组中的类变量

时间:2014-09-14 14:27:12

标签: ios objective-c arrays

在objective-c中,如何在可变对象数组中访问各个类属性?

我创建了一个班级' Person'具有属性NSString' firstName'和NSString'姓氏'。然后,我创建了一个可变数组的“人物”#39;使用以下代码:

NSMutableArray * personArray = [[NSMutableArray alloc] init];
[personArray addObject: firstPerson];
[personArray addObject: secondPerson];
[personArray addObject: thirdPerson];

我如何才能访问' firstName' ' secondPerson'?

的属性

我知道C ++等价物会是这样的:

personArray[1].firstName

感谢任何帮助,谢谢。

2 个答案:

答案 0 :(得分:2)

首先,您需要导入要使用公共标题信息的Person标题文件(我假设该属性是公开的)。

#import "Person.h"

然后你使用数组上的对象将它转换为正确的类

((Person *)(personArray[1])).firstName;

这是必需的,因为返回personArray[1]的对象的类型为id,因此编译器并不知道对象类型。将它转换为正确的类使编译器感到高兴(您通知它有关数组中对象的类型),允许您使用其公共属性。

另一种方法是使用

[personArray[1] firstName]

它的工作原理是因为使用这种表示法,您可以在id对象上调用编译器看到的接口的任何方法属性。在这种情况下,编译器信任您,如果您使用的属性\方法不属于该对象的类,则在运行时会发生崩溃。

答案 1 :(得分:0)

您需要将“类变量”更改为“属性”,然后像在C ++中一样访问该属性

personArray[1].firstName