2010-07-28 15 views
11

belirtmek gerekiyor ben NSArrayFoo nesneleri var.bir dizeye nesneleri NSArray katılan, ancak mülk

@interface Foo : NSObject 
{ 
} 
- (NSString *) name; 
@end 

Ben bir NSString içine tüm bu [Foo name] sonuçları katılmak isterler.

List<Foo> foo = [..]; 
String.Join(",", foo.select(F => F.name()).ToArray()); 

Objective-C bu mümkün gibi bir şey mi: Ben bunun bir Array oluşturulması, LINQ kullanarak ve String.Join() bunu besleyerek bunların bir dizi alacağı C# '

?

[NSArray componentsJoinedByString] ile ilgili bilgiler biliyorum, ancak içeriğini el ile döngülemeden tüm nesnelerin [Foo name] özelliklerini kolayca nasıl kolayca seçebilirim?

cevap

35
[[myArray valueForKey:@"name"] componentsJoinedByString:@","] 

(docs)

+0

Evet - I OP bu '@ ile birleştirilmiş istediği düşünmektelerse " "' ya da ''"," '. – bbum

+0

@bbum yep, sadece gördüm ve düzeltildi – cobbal

+0

Bu teknik, diziyi yinelemek ve virgülü manuel olarak eklemek yerine daha yavaş olabilir mi? Çünkü valueForKey, tüm dizide bir kez tekrarlar. Ve sonra, 'componentJoinedByString' başka bir iterasyon yapacağını varsayardım, bu yüzden iki kez yapılır. – pixelfreak