Rit*_*its 4 iphone cocoa-touch objective-c interface-builder uikit
在我的UIViewController子类中,我有3个UIView,每个a @property作为IBOutlet.我的代码中根本不使用这些属性.一旦创建了视图控制器,视图就会被实例化,并且在取消分配视图控制器时会取消分配视图.
我刚在想; 我不能只删除@property's?我做了,我仍然可以IBOutlet在Interface Builder中连接我的实例变量(with ).
所以现在我的问题是; 是否有任何与Interface Builder结合使用的属性,或者可以将它们删除?是否需要一些内存管理或其他什么?或者他们真的只是在你自己的代码中使用?
如果我把它们抛弃,我还需要release它们dealloc吗?
Dav*_*ong 10
他们没有必要,但他们强烈鼓励他们澄清内存管理这一简单事实.
例如,如果您通过ivar申报出口,那么它的保留政策是什么?它保留了吗?它是自动释放的吗?你是老板吗?别人也拥有它吗?那里存在很多歧义(尤其是那些被诅咒的顶级对象,其在Mac上的行为与在iPhone上的行为不同).
另一方面,如果您通过属性声明出口,则不存在歧义,因为内存管理策略直接在声明中声明.除了属性的存在,nib unarchiving将看到setter并使用它,从而确保转移对象所有权等没有任何奇怪的事情.
简而言之,您可以在不使用的情况下声明出口@property(在10.5中引入之前我们都必须这样做),但是没有充分的理由不使用它们.它们确实使代码更加清晰,确切地说是到底发生了什么.
有关nib对象内存管理的荒谬性的更多信息,请查看文档中的此页面.