Есть ли причины, по которым я должен предпочесть NSArray вместо NSMutableArray? - PullRequest
1 голос
/ 28 апреля 2009

Я чувствую, что когда я использую NSArray, я могу ограничить себя в будущем. Есть ли веские причины предпочитать этот «примитивный» вместо «сложного», который изменчив?

Ответы [ 3 ]

6 голосов
/ 28 апреля 2009

Использование неизменяемой структуры в вашем коде не является большим ограничением - если окажется, что вам нужно изменить ее позже, вы можете перейти на использование изменяемой структуры. Это может быть больше ограничением, если вы заметили это во внешнем интерфейсе. Основными преимуществами не изменяемого является то, что вы получаете безопасность потоков, и более легко концептуализировать код - вас меньше беспокоит, если изменчивость исключается из уравнения. Вот почему у нас есть ограничения const и так далее - если вам не нужно изменять данные, лучше сказать об этом заранее.

2 голосов
/ 28 апреля 2009

В дополнение к ответам от Mssrs INFORMATION и mouviciel NSArray работает быстрее, чем NSMutableArray. Это верно для всех статических / изменчивых коллекций.

2 голосов
/ 28 апреля 2009

Одной из причин является принцип ЯГНИ . Если вам не нужен изменяемый массив, не используйте его. Таким образом, ваш код будет легче понять, протестировать и поддерживать.

Помните, что код обрабатывается не только компилятором, но и читается кодерами или тестерами. Использование NSMutableArray вместо NSArray имеет для них смысл. Может быть контрпродуктивным давать им ложную информацию о ваших намерениях.

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