我在我的 iPhone 应用程序中使用了这个
if (title == nil) {
// do something
}
但它引发了一些异常,并且控制台显示标题为“(null)”。
所以我现在用这个:
if (title == nil || [title isKindOfClass:[NSNull class]]) {
//do something
}
有什么区别,确定字符串是否为空的最佳方法是什么?
正如其他人指出的那样,Cocoa/Objective C 下有多种“null”。但需要注意的另一件事是 [title isKindOfClass:[NSNull class]] 毫无意义地复杂,因为 [NSNull null] 被记录为一个单例,这样你就可以检查指针是否相等。看Cocoa 主题:使用 Null.
所以一个好的测试可能是:
if (title == (id)[NSNull null] || title.length == 0 ) title = @"Something";
请注意,即使 title 为 nil,title.length 也将返回 0/nil/false,即在本例中为 0,因此您不必对其进行特殊处理。这是 Objective C 新手很难适应的事情,尤其是来自其他语言的消息/方法调用为零崩溃的人。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)