Что означает «изменчивый» в цели C? - PullRequest
5 голосов
/ 12 августа 2010

Я хочу задать вопрос о цели C. Когда я изучаю библиотеку с веб-сайта разработчика Apple. Я всегда вижу, что есть некоторый подкласс, названный "изменяемым". Например, NSArray и NSMutableArray. Что это значит об этом слове. Есть ли какой-то особый смысл? Кто-нибудь может сказать мне? Спасибо.

Ответы [ 3 ]

4 голосов
/ 12 августа 2010

Это означает, что вы можете изменить его значения.Если вы посмотрите на документы NSMutableArray, то увидите, что они определяют дополнительные методы, такие как -addObject:.NSArray сам по себе не имеет их (и поэтому может быть более эффективным / занимать меньше памяти при реализации).

Также обратите внимание, что если вы вызовете [myMutableArray copy], вы получите его неизменяемую копию (который вы должны позже выпустить 0. И точно так же есть -mutableCopy.

1 голос
/ 12 августа 2010

Из Руководства для начинающих Objective-C в нем содержится ответ на ваш конкретный вопрос:

Существует два вида массивов (и обычно наиболее ориентированный на данные фонд классы) NSArray и NSMutableArray. Как следует из названия, Mutable это переменная , NSArray тогда нет. это означает, что вы можете сделать NSArray, но один раз у вас есть вы не можете изменить длину.

Эта техническая заметка также подразумевает, что вы можете изменить длину изменяемого массива после того, как массив был создан.

В целом изменчивость проистекает из этих значений . Это поможет обеспечить более широкое понимание того, когда вы сталкиваетесь с этим в другом месте.

1 голос
/ 12 августа 2010

Изменяемый означает, что вы можете изменить его.Посмотрите на разницу между addObject в NSMutableArray и arrayByAddingObject в NSArray.

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