8

如何将多个对象添加到我的 NSArray?每个对象将具有相同的值。

前任。

我希望将值“SO”添加到我的数组中 10 次

4

5 回答 5

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];
于 2010-05-21T00:12:20.813 回答
6

如果您不想使用可变数组并且不想重复您的标识符N次,请使用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]);
于 2010-05-21T00:35:33.650 回答
5

我的¢2:

NSMutableArray * items = [NSMutableArray new];
while ([items count] < count)
    [items addObject: object];
于 2013-06-02T22:36:04.530 回答
2

现在,您可以使用数组文字语法。

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

您可以访问每个元素,例如items[0];

于 2013-01-17T02:09:33.973 回答
2

只需使用initWithObjects:(或您喜欢的任何方法)添加它们。AnNSArray不要求其对象是唯一的,因此您可以多次添加相同的对象(或相等的对象)。

于 2010-05-21T00:14:31.760 回答