【发布时间】:2010-05-21 00:07:10
【问题描述】:
如何向我的 NSArray 添加多个对象?每个对象都将具有相同的值。
例如
我希望将值“SO”添加到我的数组中 10 次
【问题讨论】:
标签: objective-c cocoa nsarray repeat
如何向我的 NSArray 添加多个对象?每个对象都将具有相同的值。
例如
我希望将值“SO”添加到我的数组中 10 次
【问题讨论】:
标签: objective-c cocoa nsarray repeat
你可以用一组对象来初始化数组:
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];
【讨论】:
如果您不想使用可变数组,也不想重复标识符 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]);
【讨论】:
我的 ¢2:
NSMutableArray * items = [NSMutableArray new];
while ([items count] < count)
[items addObject: object];
【讨论】:
只需使用initWithObjects:(或您喜欢的任何方法)添加它们。 NSArray 不要求其对象是唯一的,因此您可以多次添加相同的对象(或相等的对象)。
【讨论】:
现在,您可以使用数组字面量语法了。
NSArray *items = @[@"SO", @"SO", @"SO", @"SO", @"SO"];
您可以访问每个元素,例如items[0];
【讨论】: