如何诊断iPhone的SIGKILL错误?

时间:2011-08-17 17:04:41

标签: iphone objective-c

嘿所有基本上我都在尝试保存一组自定义对象,它保存得很好但是当我关闭应用程序并重新打开它实际上加载已保存的数组(进入表视图)但冻结了所有我得到的是SIGKILL 。我如何找到导致问题的原因?

如果有帮助的话,这是我用来加载数据的代码:

NSFileManager *fileManager = [NSFileManager defaultManager];

     if([fileManager fileExistsAtPath:dataFilePath]) {
         // Load the array
         NSMutableArray *arrayFromDisk = [NSKeyedUnarchiver
                                          unarchiveObjectWithFile:dataFilePath];

         [Data sharedData].listOfItems = arrayFromDisk;

         NSLog(@"Loaded");
     }

2 个答案:

答案 0 :(得分:1)

设置以下断点可能会有所帮助:

  • objc_exception_throw
  • malloc_error_break
  • [NSException raise]

检查此线程是否为xCode 4 https://devforums.apple.com/thread/68421

xCode 3上的

http://blog.emmerinc.be/index.php/2009/03/19/break-on-exception-in-xcode/

希望这有帮助

答案 1 :(得分:0)

听起来你的代码可能会抛出一个异常,最有可能发生在unarchiveObjectWithFile:。正常的行为是将异常和堆栈跟踪记录到控制台(所以看那里),但你也可以尝试在@try ... @catch中包装调用,以查看是否实际上抛出了异常:

@try {
    // Load the array
    NSMutableArray *arrayFromDisk = [NSKeyedUnarchiver
                                      unarchiveObjectWithFile:dataFilePath];

    [Data sharedData].listOfItems = arrayFromDisk;

    NSLog(@"Loaded");       
}

@catch (NSException* e) {
    NSLog(@"Caught exception: %@", e);
}