-1

我正在开发 compas-AR 应用程序。我有UIImagePickerViewController,所以我可以从设备相机获得背景。在里面UIView overlay我放了所有的 UI 按钮/子视图。每个方法一NSLog()开始都有一个,所以我可以在日志中跟踪应用程序的去向。不幸的是我被卡住了。在没有下载任何数据后,我使用了这个UIView nothingView- 我声明并添加了viewDidAppear:(BOOL)animated. 问题来了:nothingView显示,但是任何交互(旋转设备,按下我的操作UIButtons等)都在暂停应用程序,我在日志中得到的只是:

2013-05-29 15:49:53.657 CloudReco 复制[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
#0 0x37de2f78 in CoreLocationVersionNumber ()
#1 0x334b42bc in ?? ()

4

1 回答 1

0

确保您有一个 ivar 或属性保持对位置对象的强引用,并且永远不要在委托回调中释放它们(即 nil 它们),而是将一个块分派到主队列以释放它。问我怎么知道的:-)

于 2013-06-03T13:22:36.540 回答