0

NSMutableArray を使用して、テーブルビューにセルを入力しています。問題は、オブジェクトを配列に追加しようとすると、すべてのオブジェクトが追加されたオブジェクトに置き換えられるため、配列には常に 1 つのオブジェクトしかないことです。このため、私のテーブルビューには、以下のメソッドが呼び出されるたびに上書きされるセルが常に 1 つあります。何か不足していますか?

_selectedThingArray = [[NSMutableArray alloc] init];

_currentThing = newThing;
//Note: newThing is the object being passed when this method is called. 
//It is the new data that will should passed into the cell.

[_selectedThingArray addObject:_currentThing];

NSLog(@"%@", newThing);
NSLog(@"array: %@", _selectedThingArray);

[self.tableView reloadData];
4

2 に答える 2

7

この行は次のとおりです。

_selectedThingArray = [[NSMutableArray alloc] init];

「オブジェクトを追加しようとする」たびに実行されますか? はいの場合、これはあなたの問題です。オブジェクトを既存の配列に追加する代わりに、それを新しい配列に置き換えて、この新しい配列にオブジェクトを追加します。

「オブジェクトの追加を試みる」前のある時点で配列を作成するか、現在行っているのと同じ場所に配列を作成する必要がありますが、まだ作成していない場合のみです。

于 2013-08-25T13:43:23.473 に答える
2

割り当ての前に次の if 条件を追加します。

if(!_selectedThingArray) 
_selectedThingArray = [[NSMutableArray alloc] init];

これだけの代わりに:

_selectedThingArray = [[NSMutableArray alloc] init];

すべてが修正されます。

于 2013-08-25T13:47:05.257 に答える