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

initWithObjects:それらを(または任意の方法で)追加するだけです。AnNSArrayは、そのオブジェクトが一意である必要はないため、同じオブジェクト(または等しいオブジェクト)を複数回追加できます。

于 2010-05-21T00:14:31.760 に答える
2

これで、配列リテラル構文を使用できます。

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

次のような各要素にアクセスできますitems[0];

于 2013-01-17T02:09:33.973 に答える