iOS Cloudsight错误响应崩溃的应用程序

时间:2017-03-31 00:42:15

标签: ios objective-c error-handling cloudsight

我在这里执行此代码

self.cloudSightQuery = [[CloudSightQuery alloc] initWithImage:imageData
                                              atLocation:CGPointZero
                                            withDelegate:self
                                             atPlacemark:nil
                                            withDeviceId:@""];
self.cloudSightQuery.queryDelegate = self;
[self.cloudSightQuery start];

但有时会因以下原因而崩溃

  

由于未捕获的异常'NSInvalidArgumentException'而终止应用程序,原因:' - [ImageViewController   cloudSightQueryDidFail:withError:]:发送到的无法识别的选择器   实例0x100514c40'

     

第一次抛出调用堆栈:

我如何能够捕获此错误并向用户显示响应,而不是应用程序崩溃?

1 个答案:

答案 0 :(得分:2)

你看过回溯了吗?您可以使用调试器(在XCode中)显示回溯。

错误本身表示发送到该实例的方法调用[ImageViewController cloudSightQueryDidFail:withError:]无效(0x100514c40)。考虑到我们正在处理委托模式,似乎该方法从未在您的父类中定义,并且协议需要它。您将要确保首先定义该方法然后它应该有效。

TL; DR - 您想要将此方法添加到您的代理人(自己):

- (void)cloudSightQueryDidFail:(CloudSightQuery *)query withError:(NSError *)error
{
    // TODO: Fill in your logic here
    NSLog(@"query: %@, experienced an error: %@", query, error);
}

您可以在https://github.com/cloudsight/cloudsight-objc/tree/master/Example-objc

上看到此示例