Ответ 1
Это может быть то, что вы ищете:
func nullToNil(value : AnyObject?) -> AnyObject? {
if value is NSNull {
return nil
} else {
return value
}
}
people.age = nullToNil(peopleDict["age"])
Я хочу получить данные 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):
people.age = NULL_TO_NIL(peopleDict["age"]);
В приведенном выше коде, когда ключ извлеченных данных age
равен NULL
, свойство people
object .age
установлено на nil
.
Я использую Xcode 6 Beta 6.
Это может быть то, что вы ищете:
func nullToNil(value : AnyObject?) -> AnyObject? {
if value is NSNull {
return nil
} else {
return value
}
}
people.age = nullToNil(peopleDict["age"])
Я бы рекомендовал вместо использования пользовательской функции преобразования просто указать значение с помощью as?
:
people.age = peopleDict["age"] as? NSNumber
Если значение NSNull
, приведение as?
завершится с ошибкой и вернет nil
.