我正在开发一个iPhone应用程序。我有一个Row
类的对象,需要释放许多Block
类的对象。每个Block
当前都有一个属性来保留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
我理解这是一个循环引用。苹果的文档说明,为了释放具有循环引用的对象,我需要使用弱引用而不是强引用(保留属性),但它没有进一步解释如何做到这一点。我计划同时发布和释放行中的所有块以及行本身。如何在每个块内部设置一个指向其“父”行的弱引用?