Swift 3 önce, böyle NSCoder ile boolean değerlerini deşifre:Swift 3: Değerleri NSCoder ile çözmenin güvenli yolu?
aDecoder.decodeBool(forKey: TestKey)
Ama decodeBool
için sınıf referans yapmaz:
if let value = aDecoder.decodeObjectForKey(TestKey) as? Bool {
test = value
}
Swift 3'te önerilen yaklaşım yerine bu kullanmaktır Kod çözdüğünüz değer aslında bir boole değilse, durumu nasıl ele alacağınızı açıklayın. Dönüş değeri isteğe bağlı olmadığından, decodeBool
bir let ifadesine katışamazsınız.
Swift 3'teki değerleri nasıl güvenli bir şekilde çözersiniz?
aDecoder.decodeBool sağlanan boolean değil, bu hata tutarsa, bu üzerinde Boole bekliyor olarak ly. Yani Bool olduğundan emin olmalısın, değil mi? – pedrouan
doğru, bu yüzden @pedrouan kontrol etmek için güvenli bir yol değil. hata, hızlı 2 sözdizimi ile yakalanırdı. – Crashalot
Hangi tür kodlama yaptığınızı bilmek zorundasınız. Bazı durumlarda bu biraz zor çünkü özellikle 'Bool' Bool 'olarak kodlanırken Bool '' Object' olarak kodlanır. Http://stackoverflow.com/questions/38072295/fail-to-decode-int-with-nscoder-in-swift adresine bakın. – Sulthan