前提・実現したいこと
今まではNSKeyedArchiver.archivedData(withRootObject:)と NSKeyedUnarchiver.unarchiveObject(with:)を使えていたのですが現在は使えなくなってしまいました。
今まで使っていたコードから、新しいコードへどのように書き換えればいいか教えていただきたいです。
発生している問題・エラーメッセージ
それぞれ、 シリアライズ「SKeyedArchiver.archivedData(withRootObject:」 →「archivedDataWithRootObject:requiringSecureCoding:error:」、 デシリアライズ「NSKeyedUnarchiver.unarchiveObject(with: 」 →「unarchivedObjectOfClass:fromData:error: 」、に変えてくださいと表示されます。 ### シリアライズ let data: Data = NSKeyedArchiver.archivedData(withRootObject: todoList) let userdefaults = UserDefaults.standard userdefaults.set(data, forKey: "todoList") userdefaults.synchronize() デシリアライズ let userDefaults = UserDefaults.standard if let storedTodoList = userDefaults.object(forKey: "todoList") as? Data { if let unarchiveTodoList = NSKeyedUnarchiver.unarchiveObject(with: storedTodoList) as? [MyTodo] { todoList.append(contentsOf: unarchiveTodoList) ```Swift
試したこと
それぞれサジェストからコードを選択してみたのですが、変更後のコードは仮引数?が増えてしまい何を書けばいいかわかりません。またthrowも出てきてしまい新しいswiftについていけませんでした。
apple developer forumsを見ましたが、他の回答者の回答を自分の書いたコードに落とし込めず理解ができませんでした。全くの初心者で申し訳ないのですが、よろしくお願いします。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。