今天是退出与[{1}}一起保存data
并开始使用UserDefaults
和FileManager
的日子。
我不会撒谎,我在过渡期间破坏了我的代码。
用户创建一个用于填充PropertyListEncoder
的{{1}},当用户删除行或更改值时,该数组需要由用户更新。
我的代码能够成功创建数组,显示单元格并在正确的indexPath上进行计算以显示正确的数据。
问题从那里开始,这是错的:
1。当一个单元格被删除而另一个单元格被创建时,被删除的单元格将沿着新单元格返回(如果在删除单元格后重新启动应用程序,它将不再存在)
2。 array
未更新(也未保存)到tableView
。重新启动应用时再次amount
。
以下是代码:
数组创建:
cryptosArray
数组加载和TableView填充:
0
值更新和显示:
func createCryptoArray(_ addedCrypto: String) {
if addedCrypto != "" {
if addedCrypto == "Bitcoin BTC" {
let crypto1 = Cryptos(name: "Bitcoin", code: "bitcoin", symbol: "BTC", placeholder: "BTC Amount", amount: "0.0")
CryptoPickerViewController.cryptos.append(crypto1)
}
if addedCrypto == "Bitcoin Cash BCH" {
let crypto2 = Cryptos(name: "Bitcoin Cash", code: "bitcoinCash", symbol: "BCH", placeholder: "BCH Amount", amount: "0.0")
CryptoPickerViewController.cryptos.append(crypto2)
}
let documentsDirectory = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first!
let archiveURL = documentsDirectory.appendingPathComponent("cryptosArray").appendingPathExtension("plist")
let propertyListEncoder = PropertyListEncoder()
let encodedArray = try? propertyListEncoder.encode(CryptoPickerViewController.cryptos)
try? encodedArray?.write(to: archiveURL, options: .noFileProtection)
}
}
我尽量让帖子尽可能短,所以如果我忘记了任何重要信息,请告诉我。