Объекты верхнего уровня: "не [...] не владеющий объектом"
Nix. Объекты верхнего уровня принадлежат владельцу файла, который является владельцем файла, поскольку он владеет всеми объектами верхнего уровня в файле.
В Windows есть такая опция, чтобы выпускать себя для удобства, но я нахожу мой дизайн чище (даже если это немного больше работы), когда я либо выключаю его, и управляю его временем жизни, как любой другой объект, которым я владею, используйте оконный контроллер.
Если вы считаете, что это противоречит документации, которую вы цитировали, давайте пройдемся по всему абзацу:
Объекты в nib-файле изначально создаются с счетом сохранения 1. Однако при перестроении иерархии объектов AppKit автоматически освобождает любые объекты, у которых есть родительский или владеющий объект, например представления, вложенные в иерархии представлений.
Таким образом убивая свои собственные владения. Загрузчик пера не хочет владеть вашими объектами.
К моменту завершения загрузки nib-кода только объекты верхнего уровня в nib-файле имеют положительный счет сохранения и не имеют объекта-владельца. Ваш код отвечает за освобождение этих объектов верхнего уровня.
Другими словами, он передает вам право собственности.
Любопытным артефактом этого является то, что вы фактически утечете объект, если ваша собственность сохранит семантику. В документации сказано, что вы должны сохранить ее:
Как для Mac OS X, так и для UIKit, рекомендуемый способ управления объектами верхнего уровня в nib-файле - создать для них выходы в объекте-владельце файла, а затем определить методы установки для сохранения и освобождения этих объектов при необходимости.
Но если вы сделаете это, объект останется живым даже после того, как вы освободите свое владение им.
Думаю, я пойду сообщу об ошибке. (Правка: Готово. X-radar: // problem / 7559755) По крайней мере, загрузчик пера не должен передавать два удержания, что он делает в моем тестовом приложении (10.5.8 и 10.6.1).