gpt4 book ai didi

ios - 将自定义类存储在 UserDefaults 中

转载 作者:行者123 更新时间:2023-11-30 12:26:55 24 4
gpt4 key购买 nike

我试图在用户默认值中存储自定义类,但出现异常

terminating with uncaught exception of type NSException

我的类(class)如下:交易

import Foundation
import SwiftyJSON
class Transactions: NSObject,NSCoding {
var transOBJ = [JSON]()
init(transOBJ:[JSON]) {
self.transOBJ = transOBJ
}
required convenience init(coder aDecoder:NSCoder) {
let obj = aDecoder.decodeObject(forKey: "OBJ") as! [JSON]
self.init(transOBJ: obj)
}
func encode(with aCoder: NSCoder) {
aCoder.encode(transOBJ, forKey: "OBJ")
}
}

aCoder.encode(transOBJ, forKey: "OBJ") 抛出异常

保存用户默认值的代码是:

let trans = [Transactions(transOBJ: self.transactionObjs)]
var userDefaults = UserDefaults.standard
let encodedData: Data = NSKeyedArchiver.archivedData(withRootObject: trans)
userDefaults.set(encodedData, forKey: "transactions")
userDefaults.synchronize()

更新1

我正在 Alamofire 请求函数内调用用户默认值。然后它给出一个错误但是当我在 Alamofire 请求函数之外调用它时,它运行得很好。我应该怎么办?我想将其保存在 alamofire 的成功中,但无法做到

最佳答案

将此代码替换为您的代码,然后删除应用程序并再次运行。

  required init(coder aDecoder: NSCoder) {           
transOBJ = = aDecoder.decodeObject(forKey: "OBJ") as! [JSON]
}

关于ios - 将自定义类存储在 UserDefaults 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44066966/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com