簡體   English   中英

解碼不匹配的數據類型時,應用程序崩潰:如何在使用NSCoding解碼之前驗證類型?

[英]App crashes when decoding mismatched data type: how to verify type before decoding with NSCoding?

如果您使用錯誤的NSCoding函數解碼數據類型,則應用程序將崩潰。 例如,如果DoubleKey實際上代表double而不是decodeInteger期望的整數,則此行將崩潰:

    let isReallyDouble = aDecoder.decodeInteger(forKey: DoubleKey)

在解碼之前如何驗證數據類型? 如果應用程序的版本1將某些值編碼為整數,但是版本5必須將該變量更改為雙精度,則這一點很重要。

這是針對Swift 3的,對於那些值類型(例如整數和雙decodeObjectdecodeObject不起作用: Swift 3保存並從userDefaults中檢索自定義對象

當數據類型不匹配時,導致崩潰,而不是返回nil ,這似乎是一個糟糕的設計選擇。

蘋果在2018年的WWDC上發表了名為“您可以信任的數據”的演講。 主題之一討論了NSCodeable對象的解碼。 請參閱下面的鏈接以訪問演講。 強烈推薦。

https://developer.apple.com/videos/play/wwdc2018/222/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM