2011-11-07 57 views

回答

4

完全沒問題。 [myobject release];釋放myObject指向的對象。

後來,myobject = [[Object alloc] init] 將使myobject指向另一個對象。

+0

它甚至可以節省你在情況下,具有堆棧多個對象實例你做 myobject1 =頁頭初始化 myobject2 =頁頭初始化 你需要的堆棧空間爲每個這樣的對象指針 – Abhinav

1

當然是。這種技術在本地方法變量中特別有用,您可以通過將它重新分配爲新對象來重複使用一次聲明的對象。

5

這是安全的。

原因是myObject而不是一個對象,它是一個對象的引用(或指針,如果你想精確)。這意味着你有兩個完全獨立的對象,但是你忘記了對第一個的引用。

2

這沒有什麼錯。這就是你如何確保你不泄漏你的第一個對象。

但是,您不是在技術上再次分配釋放的對象。你只是再次使用舊的指針。

Object * myObject = [[Object alloc]init]; 
myObject = [[Object alloc]init]; 

將導致您創建的第一個對象泄漏。

+0

這是我被大書呆子牧場書教的第一種方式。 –

+0

如果你不想記住釋放重要的內存,你可以使用[[[[object alloc] init] autorelease]。 – Abhinav