[英]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的,對於那些值類型(例如整數和雙decodeObject
, decodeObject
不起作用: Swift 3保存並從userDefaults中檢索自定義對象
當數據類型不匹配時,導致崩潰,而不是返回nil
,這似乎是一個糟糕的設計選擇。
蘋果在2018年的WWDC上發表了名為“您可以信任的數據”的演講。 主題之一討論了NSCodeable對象的解碼。 請參閱下面的鏈接以訪問演講。 強烈推薦。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.