objective-c - 具有奇怪输出的 NSString 和 isEqualToString

标签 objective-c ios nsstring

我的应用程序出现错误,当我尝试修复它时,我在调试我的方法时遇到了一个非常奇怪的行为。

检查以下代码:(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/

相关文章:

objective-c - 调用viewDidLoad()中的方法。使用索引路径

objective-c - 使用类将 NSString 传递到另一个 ViewController

ios - 从 NSString 中删除\(仅从转义序列中删除)

objective-c - Objective C 某些 NSString 不会转换为 NSCFString

objective-c - 理解授权时遇到问题

iphone - Objective C - 从非常大的 PList 填充数组

objective-c - 电子表格网格的 NSCell vs NSView?

ios - 在 viewDidLoad Swift 之前更改初始 View

objective-c - 如何使用 NSError** 作为返回参数之一将 Objective-C BOOL 转换为 Swift 的 Bool

objective-c - 在 UIWebView 和 UIViewController 之间共享数据