1

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

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

每次我尝试

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

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

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

我认为这可能是因为自定义对象是在 Objective-c 中使用 an 创建的NSString,但是当我尝试将其转换String为 an时也会崩溃NSString,所以我不知道该怎么做。

谢谢!

4

1 回答 1

3

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

我通过检查我的自定义对象(在 Obj-C 模型中)来解决这个问题,如果有一个属性,NSNull那么你将该属性设置为等于 nil,如下所示:

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

}
于 2015-09-02T19:01:27.423 回答