我知道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
的参数。那么我怎样才能捕获这个错误,并避免让类打印消息进入我的控制台或日志?