2010-05-21 7 views
6

NSArray에 여러 객체를 추가하려면 어떻게해야합니까? 각 개체는 동일한 값을가집니다.NSArray : 동일한 값을 가진 다중 객체 추가

Ex.

NSString * blah = @"SO"; 
NSArray * items = [NSArray arrayWithObjects: blah, blah, nil]; 

또는 변경 가능한 배열을 사용하고 개체를 추가 할 수 있습니다 : 내가 값을 원하는

는 "SO"당신은 객체의 세트로 배열을 초기화 할 수 있습니다 내 배열에 10 배

답변

8

추가 나중에 :

NSMutableArray * mutableItems = [[NSMutableArray new] autorelease]; 
for (int i = 0; i < 10; i++) 
    [mutableItems addObject:blah]; 
2

initWithObjects: (또는 원하는 방법)으로 추가하십시오. NSArray은 개체가 고유하지 않아도되므로 동일한 개체 (또는 동일한 개체)를 여러 번 추가 할 수 있습니다.

3

당신은 NSArray은 C 스타일 배열을 초기화 할 수 있다는 것을 활용하여 식별자 N 번 반복하지 않으려는 또한 가변 배열을 사용하지 않으려면 :

@interface NSArray (Foo) 
+ (NSArray*)arrayByRepeatingObject:(id)obj times:(NSUInteger)t; 
@end 

@implementation NSArray (Foo) 
+ (NSArray*)arrayByRepeatingObject:(id)obj times:(NSUInteger)t { 
    id arr[t]; 
    for(NSUInteger i=0; i<t; ++i) 
     arr[i] = obj; 
    return [NSArray arrayWithObjects:arr count:t];  
} 
@end 

// ... 
NSLog(@"%@", [NSArray arrayByRepeatingObject:@"SO" times:10]); 
2

을 지금 배열 리터럴 구문을 사용할 수 있습니다.

NSArray *items = @[@"SO", @"SO", @"SO", @"SO", @"SO"];

당신은 items[0];

4

등의 각 요소에 액세스 할 수 있습니다 내 ¢ 2 :

NSMutableArray * items = [NSMutableArray new]; 
while ([items count] < count) 
    [items addObject: object];