Привет хоха Спасибо за ваше руководство. На самом деле я сделал тестовый проект, и это доказывает ситуацию. Я опубликую это. Я был очень удивлен, что простое действие по соединению элемента IB с IBOutlet фактически добавляет одно сохранение. Еще раз спасибо и ура! Извините, какой-то идиот отклонил ваш комментарий!

ожу документацию по этому вопросу неясной:

Скажем, вы работаете с iOS (НЕ для Mac, не нужно упоминать о различиях). Скажем, это строго 4.0+ (не нужно упоминать различия в старых ОС). Скажем, мы загружаем NIB строго автоматически.

Скажем, у вас есть UIViewController, BigView. Скажем, в файле NIB есть дюжина так называемых «элементов верхнего уровня» ... это могут быть пользовательские элементы управления, изображения или что-то еще.

Скажем, вы определенно собираетесь явно создать, а затем избавиться от BigView несколько раз во время работы приложения. Так:

Для одного из этих элементов верхнего уровня в NIB, естьтри возможности:

(1) У вас вообще нет какого-либо IBOutlet для него.

(2) У вас есть подключенный IBOutlet, но не собственность.

(3) У вас есть связанное свойство IBOutlet (чтобы избежать путаницы, мы скажем, сохранить свойство).

Итак, что происходит с элементом, когда BigView выпущен?

В случае (3) Кажется очевидным, что вы должны выпустить явно. Если вы этого не сделаете, он будет зависать после исчезновения вида. Нет проблем.

В случае (1) Я предполагаю (но кто-нибудь может на самом деле подтвердить?) что элемент будет выпущен, когда BigView уйдет.

В случае (2) не понятно что происходит .......

Глядя на общеизвестную справочную ссылку:http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/LoadingResources/CocoaNibs/CocoaNibs.html это очень сомнительно

«В iOS код загрузки пера использует метод setValue: forKey: для повторного подключения каждой розетки. Этот метод аналогичным образом ищет подходящий метод доступа и [ТАК, ЧТО ПРОИСХОДИТ, ЕСЛИ НЕ ОДИН ?? отступает на других средствах, когда это терпит неудачу ... [ХОРОШАЯ ГРИФ!] "

И проверить эту документацию:http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/LoadingResources/CocoaNibs/CocoaNibs.html и прокрутите вниз до «Сохранение объекта Nib»

Так ...

«Объекты в nib-файле создаются с счетом сохранения 1 и затем автоматически высвобождаются» Фантастика..

Но ждать! Прочитайте несколько слов ...

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

О чем они говорят?

Означают ли они, что если нет доступного сеттера (ivar, но нет свойства), то этоОЧЕРЕДНОЙ РАЗ RETAINED (кроме «retain», о котором они только что упоминали в предыдущем предложении) - или они просто повторяются, то есть «сохраняет объект по умолчанию» - это то же самое «retain», о котором они говорили ранее (« создан с сохранением счетчика 1, а затем автоматически освобожден ").

И зачем им даже упоминать об автозапуске, если это не так?

Действительно - если кто-то на самом деле конкретно знает ответ на этот вопрос ......откуда вы знаете?!? Вы спрашивали DTS, или через тестирование, или? Я предлагаю, ключевая документация (только что вставленная) агрессивно неясна.

Опять же - если у вас есть IBOutlet,но не собственность, подключенный к объекту "верхнего уровня" ..Вы ответственны за выпуск этого? Это сохраняется? в такой ситуации?

В этом отношении ... просто в ситуации (1), абсолютно ли так, что вещь будет выпущена, когда BigView уйдет? Я бы, конечно, предположил, что это так, но кто знает?

Вопрос в том, что произойдет, если вы используете IBOutlet iVar, но НЕ свойство ...

Я глупо никогда не думал об этом раньше / предполагал слишком много, есть ли у кого-нибудь решающий ответ? Ура !!

Для записи я сделал тестовый проект.

На самом деле (удивительно для меня)простое действие по соединению элемента IB с IBOutlet фактически добавляет одно.

(Я могу только предположить из некачественного документа, что в данной ситуации вы получаете конкретно: сохранение, автоматическое освобождение, сохранение - ведение к одному сохранению на балансе.)

Итак, вот и ответ.

Я опубликую демо-проект. Я также направляю всех читателей на ответ Джоны ниже, который безошибочно объясняет поведение setValue: forKey: Cheers

Ответы на вопрос(3)

Ваш ответ на вопрос