2013-02-02 66 views
1

如果我在對象的init中創建了一個NSArray。用ARC重新分配對象

然後後來我想重新創建一個新的NSArray到同一個屬性,我應該先設置舊的爲零嗎?

是OK才行......

self.arrayProperty = [[NSArray alloc] init]; 

,或者我應該做的......

self.arrayProperty = nil; 
self.arrayProperty = [[NSArray alloc] init]; 

(我只是用一個數組的緣故這個例子,但它是關於屬性的一般問題)。

如果它有什麼區別,它是一個強大的屬性。

回答

2

第一種方法很好,在分配新對象之前,您不需要明確地將其設置爲nil,因爲setter在保留和分配新對象之前釋放屬性的支持對象。正是在MRC下你會做什麼(除了在這裏你不會自動釋放對象)。

+0

謝謝,我認爲這將是好的只是想檢查。 – Fogmeister

2

就像ARC一樣,當沒有更多引用時,對象就會死亡。唯一的區別是在第二個代碼中你正在做一個無用的額外操作。