我的应用程序出现错误,当我尝试修复它时,我在调试我的方法时遇到了一个非常奇怪的行为。
检查以下代码:(testString
是一个NSString
)
NSLog(@"logging:AAAA%@AAAA",[testObject testString]);
if ([[testObject testString] isEqualToString:@"(null)"]) {
NSLog(@"yeah im here!");
}
及其打印:
logging:AAAA(null)AAAA
但它永远不会达到“是的,我在这里!”。这怎么可能?
最佳答案
testString
的输出是nil
。
NSLog 在传递一个 nil
对象时产生“(null)”。然而,在 nil 对象上调用方法(如 isEqualToString
)会再次计算为 nil
,因此在“if”中为 false。
关于objective-c - 具有奇怪输出的 NSString 和 isEqualToString,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12249415/