我想记录使用WebView时生成的一些错误。例如:
- (void)webView:(UIWebView *)aWebView didFailLoadWithError:(NSError *)error{
NSString * domain;
domain = [error domain];
NSLog(@"%@",error);
if ( domain == NSURLErrorDomain ) {NSLog(@"log me");}
}我发现这在Xcode 6.1和iOS8.1模拟器上不起作用。它曾用于以前的iOS版本(用Xcode 6.1和iOS 7模拟器进行测试)。,我错过了什么?
以下是控制台输出:
2014-11-06 :42:15.295 MyApp调试21897:3606481错误Domain=NSURLErrorDomain代码=-1012“操作无法完成(NSURLErrorDomain错误-1012.)UserInfo=0x7a7531c0 {NSErrorFailingURLKey=https://www.google.fr/}
以及使用iOS8 8模拟器时的一些调试:
(lldb) p NSURLErrorDomain (void *) $0 = 0x0064dacc (lldb) po域 NSURLErrorDomain (lldb) p域(NSString *) $2 = 0x0064dacc @"NSURLErrorDomain“
发布于 2014-11-06 03:10:39
我只想进一步阐述亚伦的回答:你所做的总是错误的,但这可能是因为可可存储字符串的方式发生了意外。domain == NSURLErrorDomain测试它们是否有效地是同一个对象。嗯,也许在某些条件下是这样的;Cocoa有时可以通过将两个不同的@"howdy"实例作为对一个和同一个对象的引用来高效地运行。但很明显,依靠这种行为是没有意义的。这只是一个实现细节。
发布于 2014-11-06 03:07:20
由于要比较字符串,所以需要像这样使用isEqualToString::
if ( [domain isEqualToString:NSURLErrorDomain] ) {NSLog(@"log me");}https://stackoverflow.com/questions/26771041
复制相似问题