NSCoder
에있는 decodeDouble
은 선택적 값이 아닌 값을 반환하지만 값이 인코딩되기 전에 값이 0인지 여부를 확인하고자합니다. 값이NSCoder decodeDouble 값의 선택적 값
0
또는
nil
인지 내가 식별 할 수없는 것 같다 있도록
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
}
것은 그래서 값이 설정되지 않았습니다 경우 이중 반환 0
을 디코딩 :
이
내 시나리오입니다인코딩 전에 double이 0인지 확인하는 방법이 있습니까?
당신에게 'NSNumber? '로 변환하여 encodeObject로 저장하고'decodeDouble' 대신'decodeObject' 사용 –
'nil '값으로 인코딩 된 값과 키에 존재하지 않는 값을 구별 할 수 있어야합니까 ? – Hamish
[이 답변] (http://stackoverflow.com/questions/39891190/how-do-i-decode-a-double-using-nscoder-nsobject-and-swift-3-for-ios/39895068#39895068)) 귀하의 사건에 유용합니까? –