在使用自动引用计数(ARC)时,iOS中是否有不能用__weak指针引用的类列表?
到目前为止,苹果的过渡到ARC发行说明只列出了Mac类:
哪些类不支持零弱引用? 当前无法创建对以下类实例的零-弱引用:
NSATSTypesetter、NSColorSpace、NSFont、NSFontManager、NSFontPanel、NSImage、NSMenuView、NSParagraphStyle、NSSimpleHorizontalTypesetter、NSTableCellView、NSTextView、NSViewController、NSWindow和NSWindowController。此外,在OS中,AV Foundation框架中的任何类都不支持弱引用。
对于UIKit类,甚至一般的iOS特定类,是否有类似的列表?
谢谢。
发布于 2012-02-05 06:02:17
如果试图对不支持弱引用的对象形成弱引用,则程序应立即停止。这是在目标-C进步的深度视频从WWDC 2011.因此,如果您找到一个不支持它们的类,您应该立即知道。
我非常肯定,在转换到ARC发布说明时,没有提到这一点,这意味着所有UIKit类都是安全的。我不确定关于AV Foundation类的警告是否适用于iOS。我测试了在AVCaptureSession 5和Lion上创建对iOS的弱引用,但两者都没有崩溃。我测试了在Lion上创建一个对NSWindow的弱引用,它与消息cannot form weak reference to instance (0x102232ef0) of class NSWindow崩溃了。
https://stackoverflow.com/questions/9146540
复制相似问题