Objective c 什么';s(空)与<;空>;?
我的应用程序中出现了随机崩溃,直到我将其缩小到一个特定的方法。在该方法中,我期望一个Objective c 什么';s(空)与<;空>;?,objective-c,crash,nsstring,null,Objective C,Crash,Nsstring,Null,我的应用程序中出现了随机崩溃,直到我将其缩小到一个特定的方法。在该方法中,我期望一个NSString作为参数。此NSString有时可能为零,在这种情况下,方法结束,不会造成任何伤害 当我通过NSLog(@“%@”,myString)运行我的方法参数时,我发现我得到了其中一个: 实际字符串的内容 (空) 前两个是预期的,并由我的方法处理。第三个,使用-[NSNull length]:发送到实例0x1b2ace8的无法识别的选择器使我的应用程序崩溃 我通过检查nil或iskindof class
NSString
作为参数。此NSString
有时可能为零,在这种情况下,方法结束,不会造成任何伤害
当我通过NSLog(@“%@”,myString)
运行我的方法参数时,我发现我得到了其中一个:
-[NSNull length]:发送到实例0x1b2ace8的无法识别的选择器使我的应用程序崩溃
我通过检查nil
或iskindof class
找到了解决问题的方法,但我的问题是空值和?之间的区别是什么 (null)
是当您使用格式说明符%@
和nil
值时,NSLog()
打印的字符串
是将说明
发送到NSNull
单例(可通过[NSNull null]
访问)的结果
NSNull
在Cocoa集合(NSArray
和NSDictionary
)中用作“无对象”占位符,因为它们不能包含nil
这两个描述字符串令人困惑地相似,有人可能会认为,NSNull
应该有一个针对它的bug,以便更清楚地说明这一点。(null)
是当使用带有nil
值的格式说明符%@
时,NSLog()
打印的字符串
是将说明
发送到NSNull
单例(可通过[NSNull null]
访问)的结果
NSNull
在Cocoa集合(NSArray
和NSDictionary
)中用作“无对象”占位符,因为它们不能包含nil
这两个描述字符串令人困惑地相似,有人可能会认为NSNull
应该有一个针对它的bug,以使这一点更加清楚。可能重复@Dashwuff:注意,这里的问题和答案都没有涉及这两个描述字符串,(null)
和
。我已经编辑了已接受的答案,其中包含了关于这两个值如何字符串化的注释。:)@Dashwuff的可能重复:请注意,这里的问题和答案都没有涉及两个描述字符串,(null)
和
。我已经编辑了接受的答案,以包括关于这两个值如何字符串化的注释。:)啊,我明白了。谢谢你把它清理干净!我必须在我的应用程序中查找NSNull的来源。在我的一生中,我在过去的几个小时里一直在尝试,但都无济于事。解析JSON似乎是导致这个问题的最常见的任务——用一些缺失的数据构建Cocoa集合需要使用NSNull
。你再一次说对了。我在一本字典中发现了来自远程JSON对象的罪魁祸首。谢谢啊,我明白了。谢谢你把它清理干净!我必须在我的应用程序中查找NSNull的来源。在我的一生中,我在过去的几个小时里一直在尝试,但都无济于事。解析JSON似乎是导致这个问题的最常见的任务——用一些缺失的数据构建Cocoa集合需要使用NSNull
。你再一次说对了。我在一本字典中发现了来自远程JSON对象的罪魁祸首。谢谢