我正在开发一个 iPhone 应用程序。我有一个类对象Row
,需要释放该类的许多对象Block
。每个Block
当前都有一个属性,该属性保留 class 的实例变量Row
。
@interface Block : UIImageView {
Row *yCoord;
}
@property (nonatomic,retain) Row *yCoord;
@end
每个都Row
包含NSMutableArray
这些块中的一个。
@interface Row : NSObject {
NSMutableArray *blocks;
}
-(void)addBlock:(Block*)aBlock;
@end
@implementation Row
-(void)addBlock:(Block*)aBlock {
[blocks addObject:aBlock];
aBlock.yCoord = self;
}
@end
我知道这是一个循环引用。Apple 的文档指出,为了释放具有循环引用的对象,我需要一个弱引用而不是强引用(保留属性),但它没有贯彻并解释我是如何做到这一点的。我计划同时释放和释放行内的所有块以及行本身。如何在我的每个块中设置对其“父”行的弱引用?