2010-05-21 94 views

回答

8

你可以用一組對象的數組初始化:

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

,或者你可以使用一個可變的數組,並添加對象稍後:

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

只需將它們加上initWithObjects:(或您喜歡的任何一種方法)即可。 NSArray不要求其對象是唯一的,因此可以多次添加相同的對象(或相同的對象)。

3

如果你不想使用可變數組,也不想重複你的標識符ñ倍,利用了NSArray可以從C數組初始化:

@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]; 
相關問題