0
私はStop
というクラスを持っています。このクラスはNSCoding
を実装します。 Stop
のインスタンスを問題なくUserDefaultsに保存できます。ここまでは順調ですね。私の問題は、ストップのArray
を保存することです。これは私が試みたものです:Swift:配列をUserDefaultsに保存できません
private func save(stopArray array: [Stop],withKey key: String) {
let data = NSKeyedArchiver.archivedData(withRootObject: array)
self.userDefaults.set(data, forKey: key)
self.userDefaults.synchronize()
}
private func loadStopArray(key: String) -> [Stop]? {
guard let data = self.userDefaults.object(forKey: key) as? Data else {
return nil
}
return NSKeyedUnarchiver.unarchiveObject(with: data) as? [Stop]
}
私がloadStopArray
を呼び出すたびに、私は空の配列を取得します。無名ではなく、ただ空の配列です。
アイデア?ありがとう!
何が起きているのかを判断するために、私はあなたのストップの実装を確認する必要があると思います。 – matt
保存して取得するときに同じ正確なキーを使用していますか? –
@mattあなたは正しかった、私のNSCoderのコンストラクタはnilを返していた...ありがとう! – Yotam