我有一个用于填充UITableView的数组。
问题是我应该为它分配内存。我在viewDidLoad或viewWillAppear中有两个选项,但从内存管理的角度来看,我不知道哪个更有效。
由于
编辑:
我创建视图执行以下操作:
NextViewController *nextController = [[ReservationsViewController alloc] initWithNibName:@"NextViewController" bundle:nil];
nextController.managedObjectContext = self.managedObjectContext;
[self.navigationController pushViewController:nextController animated:YES];
[nextController release];
但我不希望每次显示时都分配内存,只是第一次加载视图才能从内存管理的角度来看是正确的。
答案 0 :(得分:1)
如果您只希望分配一次,那么您应该在init方法或awakeFromNib中分配它,具体取决于视图控制器的创建方式。
viewWillAppear可能会被多次调用,并且不能保证viewDidLoad只被调用一次。
答案 1 :(得分:0)
如果数组是属性,只需在dealloc中释放它,如下所示:
- (void)dealloc {
[someArray release];
[super dealloc];
}
如果由于某种原因你转而在viewDidLoad或viewWillAppear方法中创建一个本地数组,请确保在完成后立即释放它。
答案 2 :(得分:0)
如果在viewDidLoad方法中分配内存,则仅在视图加载到内存时才会执行。如果您在viewWillAppear中执行此操作,则每次视图可见时都会执行此操作。