对于我的项目,我正在创建委托类.当我指定obj.delegate = self时,[self retainCount]增加1.因此,具有保留计数的已分配对象是2.如何释放委托对象和分配的对象retaincount为1?
问候
作者Srini
解决方法
通常的约定是不保留代表.这主要是因为通常的模式是对象的所有者通常也是它的委托,如果委托被保留,你将得到一个保留周期.
如果您使用的是属性,请按以下方式声明:
@property (assign) DelegateType delegate; // replace "DelegateType" with whatever type you need
并删除释放委托的-dealloc中的行.
如果合成了访问器,那么现在就完成了.如果没有,请使访问者分配访问者,例如
-(DelegateType) delegate { return delegate; } -(void) setDelegate: (DelegateType) newValue { delegate = newValue; }