空字符串崩溃Swift条件

时间:2015-09-02 18:36:51

标签: ios objective-c string swift nsnull

我有一个String属性作为自定义对象的一部分。当我尝试访问自定义对象上的String时(当它为空时),程序崩溃。

我可以通过打印自定义对象来判断该字符串的类型为NSNull

每次我尝试

if theString == nil if theString == NSNull() if theString.isEmpty

程序与[NSNull length]: unrecognized selector sent to instance

崩溃

我不明白的是它试图致电length的地方。我想它只会在length函数上调用isEmpty,但它也会在其他两个条件上崩溃。

我认为可能是因为自定义对象是在带有NSString的objective-c中创建的,但是当我尝试将String转换为NSString时,这也会崩溃,所以我不确定该怎么做。

谢谢!

1 个答案:

答案 0 :(得分:3)

我不喜欢回答我自己的问题,但是对于它的价值,如果Obj-C属性是NSNull并且你试图在Swift中解包它,它会给你一个错误。

我通过检查我的自定义对象(在Obj-C模型中)修复此问题,如果属性为NSNull,则将该属性设置为nil,如下所示:

if (theString == (id)[NSNull null]){
     theString = nil

}