私はこの質問の回答を探していましたが、何も見つかりませんでした。同様の質問には答えが全くありません。 基本的には、NSKeyedUnarchiver.archiveRootObject()でデータを保存し、.unarchiveObject(withFile)でロードします。それはSwift 2.3でうまくいきました。今では、アーカイブされていない部分が常にゼロに戻っていると言ってクラッシュします。ファイルが存在するかどうかをチェックします。何が起こっているのか分かりません。 これは、ロード手順です:NSKeyedArchiver.unarchiveObject Swift 3 iOS 10
func loadnotifs(_ username:String)->[AFNotificationData]{
let ArchiveURL = Constants.DocumentsDirectory.appendingPathComponent(username)
print("loading " + ArchiveURL.path)
if FileManager.default.fileExists(atPath: ArchiveURL.path) {
let unarchived = NSKeyedUnarchiver.unarchiveObject(withFile: ArchiveURL.path) as? [AFNotificationData]
if unarchived != nil {
return NSKeyedUnarchiver.unarchiveObject(withFile: ArchiveURL.path) as! [AFNotificationData]
} else {
return []
}
}
else {
return []
}
}
、これは貯蓄です: