使用情况,分为三种:storyboard ,Xib等资源,delegate属性和其他类对象属性
1、weak对象本身不能直接初始化,因为一初始化就会马上被释放(本质上是因为引用计数count没有+1),无意义,需要将其指向一个强指针
weak对象的释放,例子如下:
![](https://img.haomeiwen.com/i1229359/30e2f5ee5587ef4e.png)
输出结果为:weakobj is nil;
2、但是当weak属性修饰的是一个UIView,当weakView被加入到其他视图的subView时,要注意UIView的subViews属性有一个copy:@property(nonatomic,readonly,copy) NSArray<__kindofUIView *> *subviews;
故而该weakView会被转为一个强类型,此时,weakView和他所指向的stringView,其实可看成指向同一个地址的指针;例子如下:
![](https://img.haomeiwen.com/i1229359/4407c4300d9fee3b.png)
网友评论