Полезность использования свойств для IBOutlets под ARC? - PullRequest
3 голосов
/ 19 октября 2011

В ARC, какой смысл делать каждый IBOutlet свойством?Каков был бы недостаток использования ivars для IBOutlets, используемых только внутренне контроллером представления?

Ответы [ 2 ]

8 голосов
/ 19 октября 2011

Если вы не используете методы setter / getter для чего-либо, не полагаетесь на наблюдение значения ключа для этих свойств и не ожидаете, что подкласс выиграет от переопределения этих свойств, то реального недостатка нет просто использовать ivars для IBOutlets под ARC.

0 голосов
/ 28 октября 2011

Я использовал ivars для своих «частных» IBOutlets и столкнулся с проблемами утечки памяти.Я думаю, это потому, что мой IBOutlets использовал атрибут __unsafe_unretained вместо __weak.Я не могу использовать __weak, потому что он не поддерживается в iOS 4 (я хочу, чтобы мое приложение было обратно совместимо с iOS 4).Трудно понять, что на самом деле происходит с ARC, IBOutlets, viewDidUnload и всем этим беспорядком.Вздох ...

В любом случае, когда я изменил свой IBOutlets с ivars на свойства, проблемы утечки памяти исчезли.

Итак, чтобы ответить на мой собственный вопрос, один недостаток использования ivars для IBOutletsв том, что вы можете столкнуться с утечками памяти, если у вас есть атрибут __unsafe_unretained.

...