@interface ViewController ()
@property(weak,nonatomic)Persion *p;
@property(weak,nonatomic)BOOK *b;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
_p = [[Persion alloc] init];
_b = [[BOOK alloc]init];
_p.book = _b;
_b.p = _p;
}
如果将weak换成assign的话 在
[objc] view plain copy
_p.book = _b;
[objc] view plain copy
这行代码有很大的几率会报野指针异常,但是也有不报异常的时候
[objc] view plain copy
assign是指针赋值,不对引用计数操作,使用之后如果没有置为nil,可能就会产生野指针;而weak一旦不进行使用后,永远不会使用了,就不会产生野指针