2010-05-21 59 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]; 
相关问题