哪些iOS类不支持归零弱引用?

时间:2012-02-05 02:51:29

标签: objective-c ios cocoa-touch uikit automatic-ref-counting

在使用自动引用计数(ARC)时,是否有iOS中的类列表无法使用__weak指针引用?

Apple的Transitioning to ARC Release Notes目前只列出了Mac课程:

  

哪些类不支持归零弱引用?

     

您目前无法对以下类的实例创建归零弱引用:

     

NSATSTypesetterNSColorSpaceNSFontNSFontManagerNSFontPanelNSImageNSMenuViewNSParagraphStyleNSSimpleHorizontalTypesetterNSTableCellViewNSTextViewNSViewControllerNSWindowNSWindowController。此外,在OS X中,AV Foundation框架中的任何类都不支持弱引用。

是否有类似的UIKit类列表,甚至是特定于iOS的类?

感谢。

1 个答案:

答案 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一起崩溃。