如何在没有NSError参数的Objective-C方法调用期间捕获错误?

时间:2016-08-31 00:46:03

标签: objective-c error-handling

我知道Objective-C中的某些方法会在发生错误的情况下使用指向要填充的NSError对象的指针。

但是如何捕获在的Objective-C方法中发生的错误采取任何此类错误参数?

例如,canOpenURL方法:

BOOL canOpen = [[UIApplication sharedApplication] canOpenURL:url];

...在控制台上打印:

-canOpenURL: failed for URL: "bogus://example/" - error: "(null)"

这是而不是,因为iOS 9限制了调用canOpenURL,要求在plist中测试自定义URL方案的声明为discussed in this blog post。在这种情况下,我确实宣布了该计划。如果该方案未在plist中声明,则错误消息将是一个句子而不是您在上面看到的单词null

因此,当(a)自定义URL方案已在plist中的LSApplicationQueriesSchemes字符串数组中声明时,以及(b)在物理设备上没有愿意处理的应用程序时,会报告上面看到的这个神秘错误该架构(在此示例中架构为'虚假')。

canOpenURL方法不会填充NSError的参数。那么我怎样才能捕获这个错误,并避免让类打印消息进入我的控制台或日志?

0 个答案:

没有答案