Я просто хотел бы узнать, как скопировать NSMutableArray, чтобы при изменении массива моя ссылка на него не изменилась. Как скопировать массив?
Как скопировать NSMutableArray
Ответ 1
Существует несколько способов сделать это:
NSArray *newArray = [NSMutableArray arrayWithArray:oldArray];
NSArray *newArray = [[[NSMutableArray alloc] initWithArray:oldArray] autorelease];
NSArray *newArray = [[oldArray mutableCopy] autorelease];
Все это создаст мелкие копии.
( Изменить: Если вы работаете с ARC, просто удалите вызовы на autorelease
.)
Для глубоких копий используйте это вместо:
NSMutableArray *newArray = [[[NSMutableArray alloc] initWithArray:oldArray copyItems:YES] autorelease];
Стоит отметить: По очевидным причинам последний потребует реализовать все объекты элемента массива NSCopying
.