我要登录使用的WebView时产生一些错误。例如:比较的NSString VS的NSString * const的(在iOS8.1)失败
- (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和iOS7模拟器进行测试)。 我错过了什么?
这里是控制台输出:
2014年11月6日03:42:15.295 MyApp的调试[21897:3606481]错误 域= NSURLErrorDomain代码= -1012“该操作不能 完成(NSURLErrorDomain错误-1012。)”的UserInfo = 0x7a7531c0 {NSErrorFailingURLKey = https://www.google.fr/}
而一些调试使用iOS8上的仿真器时:
(LLDB)p NSURLErrorDomain(无效*)
$ 0 = 0x0064dacc
(LLDB)PO域
NSURLErrorDomain(LLDB)p域 (的NSString *)$ 2 = 0x0064dacc @ “NSURLErrorDomain”
我的理解是,它应该也正常工作(比较指针)。 http://stackoverflow.com/questions/538996/constants-in-objective-c/539191#539191 – subzero 2014-11-06 03:10:17
实际上,我在我的应用程序中遇到了同样的问题。以前它工作正常,但最近停止工作,并且'isEqualToString:'固定它,因为它显然是比较字符串的绝对方法。 “亚光”也给出了更详尽的解释。 – 2014-11-06 03:12:25
我同意你和马特所说的。比较2个字符串必须用'isEqualToString'来完成。我在做'domain == NSURLErrorDomain'时的意图是比较指针。而且,根据LLDB的输出,他们指向相同的地址。对? – subzero 2014-11-06 03:27:20