Изменяемый и неизменный объект, например, переменная экземпляра в цели C - PullRequest
0 голосов
/ 01 мая 2011

У меня есть класс со свойством sampleNames. Это тип NSSet. Переменная экземпляра, которую я планирую использовать, будет NSMutableSet.

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

Каковы практические соображения при принятии решения о том, использовать ли изменяемый класс для внутреннего использования?

Обратите внимание, меня совсем не интересует изменение моей СОБСТВЕННОСТИ на NSMutableSet. Но тот факт, что я использую другой тип внутри страны, заставил меня задуматься о том, почему, и у меня нет никакого реального оправдания, кроме удобства, которое само по себе я считаю плохим. Может быть, это единственная причина, но я не очень осведомлен о том, что я торгую для удобства.)

1 Ответ

1 голос
/ 01 мая 2011

Я думаю, вы в замешательстве.

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

Если вы используете NSSet, вы не сможете изменить содержимое.

Итак ... ваше объявление свойства и переменная вашего экземпляра должны быть ОДНЫМ классом. Либо используйте NSSet, если вам не нужно менять содержимое, либо NSMutableSet, если вы это делаете.

Наличие другого класса для свойства и переменной экземпляра - это рецепт катастрофы ... это не удобно и сбивает с толку = ПЛОХО; -)

...