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

iOS Cloudsight错误响应崩溃应用程序,ios,objective-c,error-handling,cloudsight,Ios,Objective C,Error Handling,Cloudsight,我在这里执行这个代码 self.cloudSightQuery = [[CloudSightQuery alloc] initWithImage:imageData atLocation:CGPointZero withDelegate:self

我在这里执行这个代码

self.cloudSightQuery = [[CloudSightQuery alloc] initWithImage:imageData
                                              atLocation:CGPointZero
                                            withDelegate:self
                                             atPlacemark:nil
                                            withDeviceId:@""];
self.cloudSightQuery.queryDelegate = self;
[self.cloudSightQuery start];
但是,有时它会崩溃,原因如下

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

第一次抛出调用堆栈:


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

您是否查看了回溯?您可以使用调试器(在XCode中)显示回溯

错误本身表示有一个无效的方法调用被发送到该实例(0x100514c40)。考虑到我们处理的是委托模式,似乎该方法从未在父类中定义过,它是协议所要求的。您需要确保首先定义该方法,然后它才能工作

TL;DR-您希望将此方法添加到您的代理(自身):


您可以在以下位置看到一个示例:

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

错误本身表示有一个无效的方法调用被发送到该实例(0x100514c40)。考虑到我们处理的是委托模式,似乎该方法从未在父类中定义过,它是协议所要求的。您需要确保首先定义该方法,然后它才能工作

TL;DR-您希望将此方法添加到您的代理(自身):

您可以在以下位置看到此示例:

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