2012-02-08 10 views
18

を形成することができない私はこのようになります性質があります。弱い特性が

@property (weak, nonatomic) id<NavigationControllerDelegate> delegate; 

をしかし、私は私のアプリを実行すると、私は次のエラーを取得する:

objc[4251]: cannot form weak reference to instance (0x101e0d4b0) of class TabBarController 

私ができる唯一の理由このエラーのためにGoogleから取得するのは、あなたがretain/release/deallocを上書きするオブジェクトへの弱い参照を形成しようとしたときにそれを取得することです。私のTabBarControllerはNSViewControllerを継承しています。

何が原因なのでしょうか?私は "割り当て"を使用する場合は動作しますが、明らかに "弱い"を使用することを好むでしょう。

+0

CocoaFu、 "インスタンスへの弱参照を形成することはできません..." です常に実行時エラーです。 –

答えて

36

AppleのTransitioning to ARC Release Notes

You cannot currently create weak references to instances of the following classes:

NSATSTypesetter , NSColorSpace , NSFont , NSMenuView , NSParagraphStyle , NSSimpleHorizontalTypesetter , and NSTextView .

Note: In addition, in OS X v10.7, you cannot create weak references to instances of NSFontManager , NSFontPanel , NSImage , NSTableCellView , NSViewController, NSWindow , and NSWindowController . In addition, in OS X v10.7 no classes in the AV Foundation framework support weak references.

(注:1は弱参照をnonzeroingと非常に注意する必要があります...)によると

+0

素晴らしいもの!前回の調査結果に基づいてNSViewControllerとは何か違うものがあると思いました。私はあなたがちょうどペーストしたものを見ていない。ありがとう、それは間違いなくすべてを明らかにする! –