2012-02-13 65 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