2013-04-13 26 views
0

我最近意識到,使用loadNibNamed:owner:topLevelObjects:是否允許在頂級插座中使用弱引用?

loadNibNamed:owner: 

在10.8已被棄用,因此已經開始它切換到

loadNibNamed:owner:topLevelObjects: 

我使用ARC既然這個新版本現在允許我控制器保持強勁對我的筆尖中所有頂級對象的引用,將我的插座連接更改爲頂級對象變爲弱引用(對於那些支持弱引用的對象,當然是這樣)?

這將僅僅是爲了與其他網點保持一致,我明白,爲同一個對象持有兩個強引用沒有任何錯誤(在這種情況下)。

我不是在問使用IBOutlets和ARC的一般情況,我特別要詢問何時通過新的10.8方法加載筆尖,以查看它是否改變了不得不保持頂級域名的規則,使用強勢商店的高級物品。

想法?

+0

@GabrielePetronella我會考慮把它作爲一個非重複項打開,因爲在這種情況下,使用'loadNibNamed :: owner:topLevelObjects:'有一個細微差別。特別是,如果刪除topLevelObjects數組,會發生什麼問題。 – gaige

+0

我同意。它與問題相關,但我的問題是使用新的10.8方法,而不是一般情況下對IBOutlets使用ARC。 –

回答

1

這將取決於你對topLevelObjects數組指針的操作。一旦掌握完畢,您需要堅持整個數組,或者需要對數組中每個對象的強引用,以確保不會丟失任何東西。

如果您打算保存數組,那麼使用對頂級對象的弱引用是安全的。如果你不這樣做,你必須堅強。

+0

我打算堅持控制器內的整個數組,所以這幾乎證實了我的想法。 –