Зачем мне очищать память, если у меня есть IBOutlet с «сохранить», но не тогда, когда у меня есть «с»? - PullRequest
0 голосов
/ 24 апреля 2009

Пример:

@property (..., assign)

там, я не делаю никакой очистки в методе dealloc. Но когда у меня есть

@property (..., retain)

тогда я бы так и сделал.

У меня это есть где-то в интернете. Не помню сайт. Что ж, я знаю, что ключевое слово retain в директиве компилятора будет иметь значение retain count +1, но на самом деле я думаю, что пропустил глубокую разницу в assign и retain.

1 Ответ

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

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

В случае сохранения, как вы говорите, он отправит объекту сообщение retain, увеличивая его счетчик хранения, поэтому вы несете ответственность за отправку этому объекту сообщения release, когда ваш объект (в вашем dealloc).

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