您的位置:首页 > 移动开发 > Objective-C

object c 循环引用计数问题,非常重要。

2015-06-26 13:25 519 查看
头文件:@interface ObjA : NSObject@property (nonatomic, strong) ObjB * objB;@end@interface ObjB : NSObject@property (nonatomic, strong) ObjA * objA;@end源文件:@implementation ObjA@synthesize objB;-(void) dealloc{ NSLog(@"ObjA");}@end@implementation ObjB@synthesize
objA;-(void) dealloc{ NSLog(@"ObjB");}@end错误用法:-(void) retainCycleTest{ /** 以下代码将导致死锁而内存泄露,ObjA,ObjB都无法释放,观察ObjA,ObjB的dealloc函数即可 */ ObjA * a = [[ObjA alloc] init]; ObjB * b = [[ObjB alloc] init]; a.objB = b; b.objA = a;}解救方法:@interface ObjB : NSObject@property
(nonatomic, weak) ObjA * objA;@end
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: