没有日志时如何调试?

时间:2013-05-29 14:03:17

标签: iphone ios xcode debugging

我正在开发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在? ()

1 个答案:

答案 0 :(得分:0)

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