2010-01-14 57 views
5

獲取字符串值我有一個NSArrayController和我的時候,我得到了selectedObjects,並創建一個的NSString與valueForKey:@"Name"值返回從NSArray中

(
    "This is still a work in progress " 
) 

和所有我想要是在文本""我該如何得到它?還有,這是我的代碼:

NSArray *arrayWithSelectedObjects = [[NSArray alloc] initWithArray:[arrayController selectedObjects]]; 

NSString *nameFromArray = [NSString stringWithFormat:@"%@", [arrayWithSelectedObjects valueForKey:@"Name"]]; 
NSLog(@"%@", nameFromArray); 

編輯:我也有數組

回答

16

當你的陣列上稱之爲valueForKey:,它呼籲每個包含在數組中的元素valueForKey:其他字符串,並將這些值返回到新數組中,用NSNull代替任何nil值。也不需要從控制器複製selectedObjects數組,因爲它無論如何都是不可變的。

如果你在你的陣列控制器的選擇對象的多個對象,並要查看所選對象的所有物品的名稱關鍵字的值,簡單地做:


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

for (id name in names) 
    NSLog (@"%@", name); 

當然,你可以全部打印出來一次,如果你做的事:

NSLog (@"%@", [[arrayController selectedObjects] valueForKey:@"name"]); 

如果該selectedObjects數組中只有一個元素,而你打電話valueForKey:,它仍然會返回一個數組,但將只包含的關鍵字的值中的孤獨元素陣列。你可以參考lastObject

NSString *theName = [[[arrayController selectedObjects] valueForKey:@"name"] lastObject]; 
NSLog (@"%@", theName);