在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
感谢任何帮助,谢谢。
答案 0 :(得分:2)
首先,您需要导入要使用公共标题信息的Person
标题文件(我假设该属性是公开的)。
#import "Person.h"
然后你使用数组上的对象将它转换为正确的类
((Person *)(personArray[1])).firstName;
这是必需的,因为返回personArray[1]
的对象的类型为id
,因此编译器并不知道对象类型。将它转换为正确的类使编译器感到高兴(您通知它有关数组中对象的类型),允许您使用其公共属性。
另一种方法是使用
[personArray[1] firstName]
它的工作原理是因为使用这种表示法,您可以在id
对象上调用编译器看到的接口的任何方法属性。在这种情况下,编译器信任您,如果您使用的属性\方法不属于该对象的类,则在运行时会发生崩溃。
答案 1 :(得分:0)
您需要将“类变量”更改为“属性”,然后像在C ++中一样访问该属性
personArray[1].firstName