decodeDouble
на NSCoder
возвращает необязательное значение, но я хотел бы определить, было ли значение нулевым до того, как оно было закодировано.
Это мой сценарий:
var optionalDouble: Double? = nil
func encode(with aCoder: NSCoder) {
if let optionalDouble {
aCoder.encode(optionalDouble, forKey: "myOptionalDouble")
}
}
convenience required init?(coder aDecoder: NSCoder) {
optionalDouble = aDecoder.decodeDouble(forKey: "myOptionalDouble")
// here optionalDouble is never nil anymore
}
Таким образом, декодирование double возвращает 0
в случае, если значение никогда не было установлено, поэтому кажется, что я не могу определить, было ли значение на самом деле 0
или nil
до кодирования
Есть ли способ проверить, был ли двойник нулевым до того, как он был закодирован?
NSNumber?
для сохранения с помощью encodeObject и использоватьdecodeObject
вместоdecodeDouble
- person Duyen-Hoa   schedule 24.11.2016nil
, и значение, не существующее для ключа? - person Hamish   schedule 24.11.2016