相关疑难解决方法(0)

我有一个循环参考.如何在Objective-C中创建弱引用?

我正在开发一个iPhone应用程序.我有一个类的对象Row需要释放该类的许多对象Block.每个Block当前都有一个保留类的实例变量的属性Row.

@interface Block : UIImageView {
  Row *yCoord;
}
@property (nonatomic,retain) Row *yCoord;
@end
Run Code Online (Sandbox Code Playgroud)

每个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
Run Code Online (Sandbox Code Playgroud)

我知道这是一个循环参考.Apple的文档声明,为了使用循环引用释放对象,我需要一个弱引用而不是一个强引用(一个保留属性),但它没有贯彻并解释我究竟是如何做到的.我计划同时释放和释放一行中的所有块以及行本身.如何在每个块中将弱引用设置为"父"行?

iphone weak-references objective-c circular-reference

20
推荐指数
2
解决办法
9567
查看次数