gpt4 book ai didi

objective-c - (null) 与 有什么区别?

转载 作者:行者123 更新时间:2023-12-03 15:51:37 25 4
gpt4 key购买 nike

在我将其缩小到特定方法之前,我的应用程序中出现了随机崩溃。在那种方法中,我期望 NSString作为参数。这个NSString有时可以为零,在这种情况下方法结束并且没有造成任何伤害。

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

  • 实际 NSString 的内容
  • (空)

  • 前两个是我的方法所期望和处理的。第三个, ,用 -[NSNull length]: unrecognized selector sent to instance 0x1b2ace8 使我的应用程序崩溃。 .

    我通过检查 nil 找到了解决问题的方法。或 isKindOfClass ,但我的问题是 (null) 和 有什么区别? .

    最佳答案

    (null)NSLog() 的字符串使用格式说明符 %@ 时打印与 nil值(value)。 <null>是发送 description 的结果到NSNull单例(通过 [NSNull null] 访问)。
    NSNull在 Cocoa 集合( NSArrayNSDictionary )中用作“无对象”占位符,因为它们不能包含 nil .

    这两个描述字符串令人困惑地相似,有人可能会争辩说 NSNull应该有一个针对它的错误,以便更清楚地说明这一点。

    关于objective-c - (null) 与 <null> 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11287590/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com