web-dev-qa-db-ja.com

forループを使用してNSArrayにオブジェクトを追加する方法は?

Forループを使用して、[NSDecimalNumber numberWithInt:i]を配列に追加します。

ハードコードされています:

 NSArray *customTickLocations = [NSArray arrayWithObjects: [NSDecimalNumber numberWithInt:1],[NSDecimalNumber numberWithInt:2],[NSDecimalNumber numberWithInt:3],[NSDecimalNumber numberWithInt:4],[NSDecimalNumber numberWithInt:5],[NSDecimalNumber numberWithInt:6],[NSDecimalNumber numberWithInt:7],[NSDecimalNumber numberWithInt:8],[NSDecimalNumber numberWithInt:9],[NSDecimalNumber numberWithInt:10],[NSDecimalNumber numberWithInt:11],[NSDecimalNumber numberWithInt:12],nil];

このようにしたいのですが、ここに追加できるオブジェクトは1つだけです。

for (int i=0; i<totalImagesOnXaxis; i++)
{
    customTickLocations = [NSArray arrayWithObject:[NSDecimalNumber numberWithInt:i]];
}

これを助けてください、マダン、事前に感謝します

21
Madan Mohan

NSArrayimmutableです。可変バージョンNSMutableArrayを使用します。

44
EmptyStack
NSMutableArray * customTickLocations = [NSMutableArray new];
for (int idx = 0; idx < 12; ++idx) {
    [customTickLocations addObject:[NSDecimalNumber numberWithInt:idx]];
}

...
20
justin

実行時にオブジェクトをNSArrayに追加することはできません。実行時にオブジェクトを追加または削除するには、NSMutableArrayを使用する必要があります。

NSMutableArray *mutableArray=[[NSMutableArray alloc] init];
for (int i=0; i<10; i++) {
    [mutableArray addObject:[NSDecimalNumber numberWithInt:i]];
}
10
Warewolf
NSMutableArray *customTickLocations = [NSMutableArray array];
for (int i=0; i<totalImagesOnXaxis; i++)
{
    [customTickLocations addObject:[NSDecimalNumber numberWithInt:i]];
}

NSMutableArrayクラスは、オブジェクトの変更可能な配列を管理するオブジェクトへのプログラムインターフェイスを宣言します。このクラスは、NSArrayから継承した基本的な配列処理動作に挿入および削除操作を追加します

NSMutableArrayクラスリファレンス

5
beryllium
NSMutableArray * customTickLocations = [[NSMutableArray alloc] init];
for(int i = 0; i<WhateverNoYouWant;i++){
NSDecimalNumber * x = [NSDecimalNumber numberWithInt:i]
[customTickLocations addObject:x]

    }
5
Radu

この手法を使用すると、NSArrayにさらにいくつかの要素を簡単に追加できる優れた方法であることがわかりました。これは、このスレッドに来たときに探していた答えでした。

現在の配列に新しい配列を追加する場合

currentArray = [currentArray arrayByAddingObjectsFromArray: newArray]; 
4
simon_smiley

NSArray次のようなオブジェクトを追加します。

NSArray *arr = @["1","2","3","4"];

NSArrayaddObjectのようにNSMutableArrayできないと思います。試してみてください:

NSMutableArray *mulArr = [NSMutableArray new];
[mulArr addObject:[NSDecimalNumber numberWithInt:number]];
1
AmyNguyen