不能使用weak修饰进行声明的类

Posted 小爷的爷

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了不能使用weak修饰进行声明的类相关的知识,希望对你有一定的参考价值。

These classes include NSTextViewNSFont and NSColorSpace; for the full list, see Transitioning to ARC Release Notes.

 

但是如果你真的想在这些类中使用weak进行修饰,可以使用不安全的修饰符unsafe_unretained

如:用unsafe_unretained修饰属性

  

@property (unsafe_unretained) NSObject *unsafeProperty;

__unsafe_unretained修饰变量
NSObject * __unsafe_unretained unsafeReference;

注意:虽然unsafe引用和weak的引用相似,都不会跟随对象的生命周期一直存在,但是weak被释放的时候是转变成空值的,而unsafe确不是,它会变成一个空指针,依然存在内存中,当发送信息给这个空指针的时候就会发生死机。

以上是关于不能使用weak修饰进行声明的类的主要内容,如果未能解决你的问题,请参考以下文章

iOS 关于修饰代理用weak还是assign

iOS strong与weak的使用

final关键字修饰的类称为

__block和__weak

__block 和__weak

assign和weak的区别