Не уверен, что вы подразумеваете под "списком" - это массив с массивами - если он предназначен для стандартного метода, он неправильный - поэтому вы должны уточнить это. Но ответ на то, что я думаю - это ваш вопрос:
addObject
добавляет сам объект, то есть просто указатель на ваш массив tem
. Оба указателя по-прежнему ссылаются на один и тот же экземпляр NSArray, поэтому все, что вы делаете через один, также будет видно через другой. Если это вас смущает, вы должны прочитать по указателям .
Если вы действительно хотите, чтобы объекты в list
были сгруппированы во внутреннем массиве, подобном tem
, вы должны каждый раз создавать новый массив tem
:
[list addObject:tem];
tem = [NSMutableArray arrayWithCapacity:1];
// new stuff added to tem will not appear in the array inside list
(Будьте осторожны с владением объектом здесь - в этом примере используется удобный метод, который автоматически высвобождает tem
, но вам может потребоваться retain
и release
соответственно.)
Если, с другой стороны, вы хотите, чтобы объекты внутри tem
были добавлены в list
, используйте addObjectsFromArray
:
[list addObjectsFromArray:tem];
// objects in list will not be affected by subsequent changes to tem
[tem removeAllObjects];