Ken*_*rin 19 macos cocoa objective-c ios automatic-ref-counting
我有一个看起来像这样的属性:
@property (weak, nonatomic) id<NavigationControllerDelegate> delegate;
Run Code Online (Sandbox Code Playgroud)
但是当我运行我的应用程序时,我收到以下错误:
objc[4251]: cannot form weak reference to instance (0x101e0d4b0) of class TabBarController
Run Code Online (Sandbox Code Playgroud)
我可以从谷歌获取此错误的唯一原因是,当您尝试形成对覆盖retain/release/dealloc的对象的弱引用时,您会得到它,我不是.我的TabBarController继承自NSViewController.
有谁知道这会导致什么?如果我使用"assign",它会起作用,但显然我更喜欢使用"weak".
Gar*_*han 37
根据Apple的Transitioning to ARC发行说明,
您当前无法创建对以下类的实例的弱引用:
NSATSTypesetter
,NSColorSpace
,NSFont
,NSMenuView
,NSParagraphStyle
,NSSimpleHorizontalTypesetter
,和NSTextView
.注:另外,在OS X v10.7,你不能创造的实例弱引用
NSFontManager
,NSFontPanel
,NSImage
,NSTableCellView
,NSViewController
,NSWindow
,和NSWindowController
.此外,在OS X v10.7中,AV Foundation框架中的任何类都不支持弱引用.
(注意:非零弱引用需要非常小心......)