Reputation: 31953
I want to fetch JSON data from my server and manipulate it upon launch. In Objective-C, I have used this #define
code to convert NSNull
to nil
, since the fetched data might include null at times.
#define NULL_TO_NIL(obj) ({ __typeof__ (obj) __obj = (obj); __obj == [NSNull null] ? nil : obj; })
However, in Swift, is it possible to convert the NSNull
to nil
? I want to use the following operation (the code is Objective-C's):
people.age = NULL_TO_NIL(peopleDict["age"]);
In the above code, when the fetched data's age
key is NULL
, then the people
object's .age
property is set to nil
.
I use Xcode 6 Beta 6.
Upvotes: 17
Views: 23332
Reputation: 130092
I would recommend, instead of using a custom conversion function, just to cast the value using as?
:
people.age = peopleDict["age"] as? Int
If the value is NSNull
, the as?
cast will fail and return nil
.
Upvotes: 14
Reputation: 539685
This could be what you are looking for:
func nullToNil(value : Any?) -> Any? {
if value is NSNull {
return nil
} else {
return value
}
}
people.age = nullToNil(peopleDict["age"])
Upvotes: 39