繁体   English   中英

iPhone:在哪里为dataSource分配内存?

[英]Iphone: Where allocate memory for dataSource?

我有一个用于填充UITableView的数组。

问题是我应该在哪里分配内存。 我在viewDidLoad或viewWillAppear中有两个选项,但是从内存管理的角度来看,我不知道哪里更有效。

谢谢

编辑:

我执行以下操作创建视图:

NextViewController *nextController = [[ReservationsViewController alloc] initWithNibName:@"NextViewController" bundle:nil];
nextController.managedObjectContext = self.managedObjectContext;
[self.navigationController pushViewController:nextController animated:YES];
[nextController release];

但是我不想每次显示都分配内存,只是第一次加载视图以便从内存管理的角度来看是正确的。

如果只希望分配一次,则应根据创建视图控制器的方式在init方法或awakeFromNib中分配它。

viewWillAppear可能会被多次调用,并且不能保证viewDidLoad仅被调用一次。

如果数组是一个属性,则将其释放在dealloc中,如下所示:

- (void)dealloc {
  [someArray release];
  [super dealloc];
}

如果出于某种原因切换到在viewDidLoad或viewWillAppear方法中创建本地数组,请确保在完成操作后立即将其释放。

如果您在viewDidLoad方法中分配内存,则只有在将视图加载到内存时才能完成。 如果您在viewWillAppear中执行此操作,则每次视图可见时都将执行此操作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM