首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >比较NSString与NSString * const (在iOS8.1上)失败

比较NSString与NSString * const (在iOS8.1上)失败
EN

Stack Overflow用户
提问于 2014-11-06 03:04:44
回答 2查看 192关注 0票数 0

我想记录使用WebView时生成的一些错误。例如:

代码语言:javascript
复制
- (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“

EN

回答 2

Stack Overflow用户

发布于 2014-11-06 03:10:39

我只想进一步阐述亚伦的回答:你所做的总是错误的,但这可能是因为可可存储字符串的方式发生了意外。domain == NSURLErrorDomain测试它们是否有效地是同一个对象。嗯,也许在某些条件下是这样的;Cocoa有时可以通过将两个不同的@"howdy"实例作为对一个和同一个对象的引用来高效地运行。但很明显,依靠这种行为是没有意义的。这只是一个实现细节。

票数 3
EN

Stack Overflow用户

发布于 2014-11-06 03:07:20

由于要比较字符串,所以需要像这样使用isEqualToString:

代码语言:javascript
复制
if ( [domain isEqualToString:NSURLErrorDomain] ) {NSLog(@"log me");}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26771041

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档