我刚刚找到了我在iOS应用中遇到的崩溃,这与在viewWillAppear之前调用willAnimateRotationToInterfaceOrientation有关。
我有一个具有两个视图的应用程序。基本上,当view1消失时,我释放了一些数组,假设它们在viewWillAppear中重新出现时将被重新初始化。
但是,如果我更改view2的方向,然后切换回view1,这将导致willAnimateRotationToInterfaceOrientation在view1调用viewWillAppear并重新初始化所有内容之前发生,这将导致崩溃。
有什么方法可以将willAnimateRotationToInterfaceOrientation延迟到视图出现并且一切都重新初始化之后?
如果没有,我只能看到的解决方案要么不使用willAnimateRotationToInterfaceOrientation(这将导致外观看起来很丑陋),要么当我从view1切换到view2时不释放数据,这将导致使用过多的内存。
有人对我应该做什么有任何想法吗?
最佳答案
您可以使用延迟加载样式代码来避免出现问题,例如:
NSArray* someData;
-(void)somefun1{
if (!someData) {
[self loadData];
}
//use your data
}
-(void)somefun2{
if (!someData) {
[self loadData];
}
//use your data
}
-(void)loadData{
//some loading code
}
使用延迟加载样式代码,您无需介意事件调用顺序。
关于cocoa-touch - 在viewWillAppear之前将willAnimateRotationToInterfaceOrientation称为,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4486943/