Основным недостатком NSMutableArray
является то, что объект, владеющий NSMutableArray
, может иметь массив, измененный за его спиной, если другой объект также принадлежит ему. Это может потребовать, чтобы вы кодировали свой объект более оборонительно, менее агрессивно преследуя производительность.
Если NSMutableArray
не выставлен вне объекта, это не проблема.
NSArray
- лучший выбор для обмена, именно потому, что он неизменен. Каждый объект, использующий его, может предполагать, что он не изменится, и ему не нужно делать защитную копию.
Это , вероятно, по той же причине, по которой NSDictionary
копирует свои ключи, а не просто сохраняет их: нужно быть уверенным, что они не будут мутировать, и копирование - единственный способ гарантировать, что .