一尘不染

如何在Swift中将NSNull转换为nil?

swift

我想从服务器中获取JSON数据并在启动时对其进行操作。在Objective-
C中,我使用此#define代码转换NSNullnil,因为获取的数据有时可能包含null。

#define NULL_TO_NIL(obj) ({ __typeof__ (obj) __obj = (obj); __obj == [NSNull null] ? nil : obj; })

但是,在Swift中,可以将转换NSNullnil吗?我想使用以下操作(代码是Objective-C的):

people.age = NULL_TO_NIL(peopleDict["age"]);

在上面的代码中,当获取的数据的age键为时NULL,则people对象的.age属性设置为nil

我使用Xcode 6 Beta 6。


阅读 397

收藏
2020-07-07

共1个答案

一尘不染

这可能是您要寻找的:

func nullToNil(value : Any?) -> Any? {
    if value is NSNull {
        return nil
    } else {
        return value
    }
}

people.age = nullToNil(peopleDict["age"])
2020-07-07