2010-07-08 64 views
2

假設你有一個Person Person(名字,年齡等)和一個名爲PeopleArray的數組,其中有幾個Person。從自定義類中填充數組的最簡單方法?

什麼是提取每個人的名字(例如)並將其放入數組中的最簡單的方法。 僞代碼是:

nameArray = every Person's name, from the array PeopleArray 

回答

6

編輯:我發現比我以前發佈的

NSArray* names = [peopleArray valueForKey: @"name"]; 

發送到-name的peopleArray每個元素的答案一個更好的解決方案,並建立了新的結果排列

Documentation

一種方法,使用快速列舉:

NSMutableArray* nameArray = [[NSMutableArray alloc] init]; 
for (Person* person in peopleArray) 
{ 
    [nameArray addObject: [person name]]; 

} 

的另一種方式,區分我的回答從相同的一個貼礦:-)

創建之前稱爲addNameToArray對人的方法:並使用makeObjectsPerformSelector:

// Person.m 

-(void) addNameToArray: (id) aMutableArray 
{ 
    [aMutableArray addObject: [self name]]; 
} 

// where you want to add the names 

NSMutableArray* nameArray = [[NSMutableArray alloc] init]; 
[peopleArray makeObjectsPerformSelector: @selector(addNameToArray:) withObject: nameArray]; 

令人失望的是,似乎是沒有等同於地圖功能。

+0

這真酷!總是有新東西來學習SO。 – willc2 2010-07-09 07:49:15

1
NSMutableArray *nameArray = [[NSMutableArray alloc] init]; 
for (Person *person in peopleArray) { 
    [nameArray addObject:person.name]; 
} 
0
NSMutableArray *nameArray = [NSMutableArray arrayWithCapacity:0]; // autoreleased, so no leak 
for (Person *peep in peopleArray) { 
    [nameArray addObject:peep.name]; // assumes you made name a property 
} 
相關問題