在使用自动引用计数(ARC)时,是否有iOS中的类列表无法使用__weak
指针引用?
Apple的Transitioning to ARC Release Notes目前只列出了Mac课程:
哪些类不支持归零弱引用?
您目前无法对以下类的实例创建归零弱引用:
NSATSTypesetter
,NSColorSpace
,NSFont
,NSFontManager
,NSFontPanel
,NSImage
,NSMenuView
,NSParagraphStyle
,NSSimpleHorizontalTypesetter
,NSTableCellView
,NSTextView
,NSViewController
,NSWindow
和NSWindowController
。此外,在OS X中,AV Foundation框架中的任何类都不支持弱引用。
是否有类似的UIKit类列表,甚至是特定于iOS的类?
感谢。
答案 0 :(得分:5)
如果您尝试对不支持弱引用的对象形成弱引用,程序应立即死亡。来自WWDC 2011的 Objective-C深度推进视频中提到了这一点。因此,如果您发现一个不支持它们的课程,您应立即知道。
我很确定过渡到ARC发行说明中缺少提及意味着所有UIKit
类都是安全的。我不确定关于AV Foundation
类的警告是否适用于iOS。我测试了在iOS 5和Lion上创建对AVCaptureSession
的弱引用,但都没有崩溃。我测试了在Lion上创建对NSWindow
的弱引用,它与消息cannot form weak reference to instance (0x102232ef0) of class NSWindow
一起崩溃。