关于weak属性

使用情况,分为三种:storyboard ,Xib等资源,delegate属性和其他类对象属性

1、weak对象本身不能直接初始化,因为一初始化就会马上被释放(本质上是因为引用计数count没有+1),无意义,需要将其指向一个强指针

weak对象的释放,例子如下:

关于weak属性_第1张图片

输出结果为:weakobj is nil;

2、但是当weak属性修饰的是一个UIView,当weakView被加入到其他视图的subView时,要注意UIView的subViews属性有一个copy:@property(nonatomic,readonly,copy) NSArray<__kindofUIView *> *subviews;

故而该weakView会被转为一个强类型,此时,weakView和他所指向的stringView,其实可看成指向同一个地址的指针;例子如下:

关于weak属性_第2张图片

你可能感兴趣的:(关于weak属性)