我正在开发compas-AR应用程序。我有UIImagePickerViewController
所以我可以从设备相机获得背景。在UIView overlay
内,我放置了所有UI按钮/子视图。每个方法一开始都有一个NSLog()
,所以我可以跟踪应用程序的日志。不幸的是,我被困住了。在没有下载任何数据后,我使用了这个UIView nothingView
- 我声明并添加了viewDidAppear:(BOOL)animated
中的所有子视图。问题出现了:显示nothingView
,但是任何互动(旋转设备,按下我的操作UIButtons
等)都是暂停应用,我在日志中获得的是:
2013-05-29 15:49:53.657 CloudReco copy [6246:707] GeoVC:targetsRequestDidFinishForContent
2013-05-29 15:49:53.659 CloudReco副本[6246:707] GeoVC:目标字典中没有数据
2013-05-29 15:49:53.662 CloudReco副本[6246:707] GeoVC:showNothing
2013-05-29 15:49:53.664 CloudReco副本[6246:707] GeoVC:showNothing 2
(GDB)
我确实使用了anylizer,但它没有指向任何方向。如果我只接受任何方法NSLog
我可以尝试跟随,但任何痕迹我都无能为力。
以下是当我发送没有找到任何内容的通知时调用的代码段:
-(void)showNothing:(NSNotification *)notification{
NSLog(@"GeoVC: showNothing");
dispatch_async(dispatch_get_main_queue(), ^{
NSLog(@"GeoVC: showNothing 2");
loadingView.hidden = YES;
closeButton.hidden = NO;
startView.hidden = YES;
gestrec.enabled = NO;
nothingView.hidden = NO;
[locationManager stopUpdatingLocation];
});
}
之后没问题,除非我旋转设备或按任何操作按钮... 任何帮助赞赏
注意:我正在使用iOS 5.1和Xcode 4.2
更新:这就是我得到的全部内容。尽管我没有隐藏/退出/释放任何视图,但所有操作都会以某种方式调用dealloc
- 至少不是“我”
(gdb)bt
CoreLocationVersionNumber()中的#0 0x37de2f78 #1 0x334b42bc在? ()
答案 0 :(得分:0)
确保你有一个ivar或属性保持对位置对象的强引用,并且永远不会在委托回调中释放它们(即nil),而是将一个块分派给主队列以释放它。问我怎么知道这个: - )