在我将其缩小到特定方法之前,我的应用程序中出现了随机崩溃。在那种方法中,我期望 NSString
作为参数。这个NSString
有时可以为零,在这种情况下方法结束并且没有造成任何伤害。
当我通过 NSLog(@"%@", myString)
运行我的方法的参数时我发现我得到了其中之一:
前两个是我的方法所期望和处理的。第三个,
-[NSNull length]: unrecognized selector sent to instance 0x1b2ace8
使我的应用程序崩溃。 .我通过检查
nil
找到了解决问题的方法。或 isKindOfClass
,但我的问题是 (null) 和 最佳答案
(null)
是 NSLog()
的字符串使用格式说明符 %@
时打印与 nil
值(value)。 <null>
是发送 description
的结果到NSNull
单例(通过 [NSNull null]
访问)。NSNull
在 Cocoa 集合( NSArray
和 NSDictionary
)中用作“无对象”占位符,因为它们不能包含 nil
.
这两个描述字符串令人困惑地相似,有人可能会争辩说 NSNull
应该有一个针对它的错误,以便更清楚地说明这一点。
关于objective-c - (null) 与 <null> 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11287590/