Когда использовать mutableCopy для NSMutableArray - PullRequest
3 голосов
/ 19 июля 2011

Я смотрю старое видео WWDC и в своем примере splitViewController они делают это в методах делегатов для splitViewController:

NSMutableArray *toolBarItems = [[toolbar items] mutableCopy];
[toolbarItems removeObjectAtIndex:0];
[toolbar setItems: toolbarItems animated YES];
[toolbarItems release];

Есть ли в общем хорошая практика для создания mutableCopy, подобной этой, дляваши данные определенными методами?Я не видел этого раньше и, как новый программист, не знаю, когда и почему я должен / должен использовать копию чего-то вместо оригинала.Я думаю, что я могу видеть это в чем-то вроде списка, где он уже заказан определенным образом, и, возможно, я бы сделал копию этого, чтобы изменить его порядок другим способом.Но я не знаю, так ли это здесь, и существуют ли ДРУГИЕ лучшие практики для этого.Спасибо!

Ответы [ 2 ]

4 голосов
/ 19 июля 2011

Изменчивый означает изменяемый.Итак, если вам нужно изменить массив, вам нужно получить изменяемую версию.NSArray подразумевает NS(Immutable)Array, что означает, что вы не можете изменить его данные.

2 голосов
/ 19 июля 2011

В приведенном вами примере массив, предоставленный [элементами панели инструментов], является неизменным. Если вы хотите изменить его, вы должны сделать его изменчивым, изменить вместо него , что , а затем передать измененную копию обратно на панель инструментов через метод setItems: animated:. В этом случае модификация удаляет первый элемент панели инструментов в массиве, но, повторюсь, вы не можете изменить неизменяемый массив.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...