2013-03-01 17 views
0

我有一个自定义类,它包含有关汽车的信息,例如股票编号,vin等。我使用属性作为getter和setter来设置所有信息。然后我创建这个类的一个实例并将它存储在一个NSMutableArray中。所以现在我有一个阵列,包含我们所有的不同汽车。如何访问数组中的类的方法

我的问题是我怎么能直接访问类成员数组中:

Veh *veh = [[Veh alloc] init]; 
veh.Stock = @"P9494"; 
NSMutableArray *array = [[NSMutableArray alloc] init]; 
[array addObject:veh]; 
// here is what I want to do, access Stock directly from the array 
NSString* string = [[array objectAtIndex:0].Stock]; 
+2

注:1。这不是一个Xcode的问题,2属性,实例变量和方法名开始按约定小写字母。 – 2013-03-01 21:17:12

+0

很高兴知道,感谢您的纠正。 – stackdaddy 2013-03-01 22:02:49

+0

不客气。 – 2013-03-01 22:03:14

回答

2

你举的例子有括号的额外点或对。为了解决这个问题,你可以删除的点,并调用方法Stock你的对象:

NSString* string = [[array objectAtIndex:0] Stock] ; 

或者你可以删除括号并告诉Xcode中,你的目标是一个Veh*,让您使用属性Stock

NSString* string = ((Veh*)[array objectAtIndex:0]).Stock ; 
+0

这正是我一直在寻找的谢谢。 – stackdaddy 2013-03-01 21:58:32

2

也许通过使用正确的语法?

NSString *string = [[array objectAtIndex:0] Stock]; 
0

尝试:

NSString* string = ((Veh *)[[array objectAtIndex:0]).Stock]; 
+2

'[[array objectAtIndex:0] .Stock]'是错误的。这也是OP所犯的错误。您应该使用'[[array objectAtIndex:0] Stock]'或'[array objectAtIndex:0] .Stock'。你的上面的行不会执行。检查另外两个答案。 – iDev 2013-03-01 21:24:59