[英]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.