微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

iPhone / iOS的isEqualToString始终返回false

如何解决iPhone / iOS的isEqualToString始终返回false

|| 我的应用程序中有一个简单的isEqualToString测试,由于某种原因,尽管控制台显示它应该采用真实路径,但它始终采用if语句的错误路径。 这是有问题的代码
- (void)requestFailed:(ASIHTTPRequest *)request
{   
    NSError *error = [request error];

    NSLog(@\"Program requestFailed with error \'%@\' and reason \'%@\'\",[error localizedDescription],[error localizedFailureReason]);

    Nsstring *errorMessage = [Nsstring stringWithFormat:@\"%@\",[error localizedDescription]];
    if ([[error localizedFailureReason] isEqualToString:@\"(null)\"])
    {
    }
    else
    {
        errorMessage = [errorMessage stringByAppendingFormat:@\"\\nReason: %@\",[error localizedFailureReason]];
    }

    [Utils msgBox:@\"Error with Data Download\" message:errorMessage];
}
在控制台中:
2011-04-15 14:27:07.341 Program[79087:207] Program requestFailed with error \'The request timed out\' and reason \'(null)\'
2011-04-15 14:27:07.341 Program[79087:207] displaying a message Box with title \'Error with Data Download\' and message \'The request timed out
Reason: (null)\'
我的Utils类中的msgBox方法标题和消息输出到控制台,控制台是第二行的来源。 我已经看了一段时间了,答案必须很简单,以免引起注意。有什么建议么? (我尝试将[error localizedDescription]的空白切掉,但无济于事。)我使用的是最新的4.3 iOS SDK。     

解决方法

字符串不等于\“(null)\”字符串为nil,当打印到控制台时,该字符串打印为AS(空)。 将nil传递给
isStringEqual
总是返回false。 如果您需要检查nil,请将您的字符串与nil进行比较,而不是\“(null)\”。
if (error != nil)
{
    errorMessage = [errorMessage stringByAppendingFormat:@\"\\nReason: %@\",[error localizedFailureReason]];
}
    ,在调试器中看到的“ 4”是调试器告诉您值实际上是“ 5”的方式。因此,您可能想尝试以下方法:
if ( ! [error localizedFailureReason] ) {
    ...
} ...
    

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。