我想从我的服务器获取JSON数据并在启动时对其进行操作。在Objective-C中,我使用此#define
代码将NSNull
转换为nil
,因为获取的数据有时可能包含null。
#define NULL_TO_NIL(obj) ({ __typeof__ (obj) __obj = (obj); __obj == [NSNull null] ? nil : obj; })
但是,在Swift中,是否可以将NSNull
转换为nil
?我想使用以下操作(代码是Objective-C' s):
people.age = NULL_TO_NIL(peopleDict["age"]);
在上面的代码中,当提取的数据的age
键为NULL
时,people
对象的.age
属性设置为nil
。
我使用的是Xcode 6 Beta 6。
答案 0 :(得分:36)
这可能就是你要找的东西:
func nullToNil(value : Any?) -> Any? {
if value is NSNull {
return nil
} else {
return value
}
}
people.age = nullToNil(peopleDict["age"])
答案 1 :(得分:10)
我建议,不要使用自定义转换功能,只需使用as?
转换值:
people.age = peopleDict["age"] as? Int
如果值为NSNull
,则as?
广告系列将失败并返回nil
。