我有一个名为Jar
的结构,我想将它们的数组保存到NSUserDefaults中。这是jar结构代码:
struct Jar {
let name: String
let amount: Int
init(name: String, amount: Int){
self.name = name
self.amount = amount
}
}
我相信我将需要将其转换为NSObject才能保存它。 (因为您不能将结构直接保存到NSUserDefaults中)。我的问题是:
如何将结构数组转换为NSObject? 和如何将NSObject转换回结构数组。
最佳答案
此解决方案的灵感来自@DuncanC。我编写了一种更熟悉的方法,就像在定制类编码和解码的情况下一样。
public struct IRDriver {
public var name: String?
public var amount: Int?
public init() {
}
// Decode
public init(dictionary: Dictionary<String, AnyObject>){
name = dictionary["name"] as? String
amount = dictionary["amount"] as? Int
}
// Encode
public func encode() -> Dictionary<String, AnyObject> {
var dictionary : Dictionary = Dictionary<String, AnyObject>()
dictionary["name"] = name
dictionary["amount"] = amount
return dictionary
}
}
关于ios - 如何在Swift 2.0中将结构保存到NSUserDefaults,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32674302/