2012-02-13 108 views
0

我對對象分配和它在目標中的釋放的理解是..這個..如果假設我用alloc init分配了一個對象,那麼我需要在它的最後一個引用之後釋放它。 像這樣....對象分配和它們的釋放

MyViewController *myView=[MyViewController alloc ]init]; 
[self.view presentModalViewController myView animated:YES]; 
    [myView release]; 

然而,如果假設我需要的NSMutableArray。 和我設置其作爲

@property(nonatomic, retain)NSMutableArray *myArr; 

和需要通過我的視圖控制器此陣列裝置例如說....視圖具有的UITableView和其數據源是該陣列(myArr,該)。

而應用程序通過Sqlite3擁有其本地數據存儲副本。

所以我添加對象到這個數組使用select statemnt的sqlite 3。

,當我需要這個數據每次viewappears,所以我在viewDidAppear 分配這個myArr,該如...

myArr=[NSMutableArray alloc]init]; 

,我需要增加價值的UITableView中的cellForRowAtIndexPath(每個細胞)的方法。

意味着它的拉斯refernce是的cellForRowAtIndexPath()

所以我的問題是,我應該在哪裏釋放myArr,該

日Thnx此分配對象advnce

親切的問候 Pagggyyy

回答

0

我認爲適當的地方將是

- (void)viewDidUnload 
{ 
    [super viewDidUnload]; 
    // Release any retained subviews of the main view. 
    // e.g. self.myOutlet = nil; 
} 
+0

然而,只有當我沒有錯,這個方法纔會被調用一次,我每次都分配視圖出現 – user968597 2012-02-13 07:45:17

+0

如果你只是隱藏和顯示一個視圖,你可以嘗試在'viewDidDisappear:'中做它,只要確保你不要嘗試訪問它而視圖不可見 – KillerX 2012-02-13 08:35:47