2012-09-03 25 views
1

我正在使用ARC,並且我在我的界面中聲明瞭我的ivarARC - 如何管理那些需要unsafe_unretained的屬性?

id itemDelegate; 然後我聲明屬性:

@property (nonatomic, weak) id<myAppDelegate> Delegate;

我在執行文件我只是合成它爲:

@synthesize Delegate;

不過,我得到的錯誤:

「現有伊娃 'ItemDelegate' 的_weak財產 'itemDelegate' 必須是_weak」。

任何人都可以提出解決方案嗎?提前致謝。

回答

2

您可以刪除iVar聲明,因爲它會自動創建。

問題是,iVars的默認所有權限定符是__strong。因此,id itemDelegate__strong id itemDelegate相同。如果您聲明財產較弱,那麼您在那裏遇到問題。您需要使用__weak。 (或__unsafe_unretained,如果你需要iOS 4的向後兼容性。)

+0

我刪除它..但它不工作..但它仍然需要該屬性是_unsafe_unretained。 –

+0

你試過乾淨的版本嗎?什麼是錯誤信息?你的目標是iOS 4嗎? –

+0

嘿謝謝...我設置了'@property(nonatomic,weak)id Delegate'及其工作現在...謝謝@Fabian ... –