2013-03-01 32 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