-->

什么是VS之间(空)的区别 ?(What's the difference betwe

2019-09-26 14:01发布

我得到随机崩溃在我的应用程序,直到我把范围缩小到一个特定的方法。 在该方法中我期待一个NSString作为参数。 此NSString有时可以是零在这种情况下,该方法结束,并没有任何的损害。

当我通过我的运行方法的参数NSLog(@"%@", myString)我发现,我得到的其中之一:

  1. 实际的NSString的内容
  2. (空值)
  3. <NULL>

前两个属于正常现象,我的方法来处理。 第三个,<NULL>,崩溃我与应用-[NSNull length]: unrecognized selector sent to instance 0x1b2ace8

我已经通过检查发现,解决问题的方式nilisKindOfClass ,但我的问题是什么(空)之间的差异<空>?

Answer 1:

(null)是该字符串NSLog()打印,当您使用格式说明符%@具有nil值。 <null>是发送的结果descriptionNSNull单(你通过访问[NSNull null] )。

NSNull用作可可集合(“无对象”占位符NSArrayNSDictionary ),因为它们不能包含nil

这两个描述字符串混淆性相似,而且人们可以说, NSNull应该起诉它,使之成为更加清楚一点的错误。



文章来源: What's the difference between (null) vs ?