ios - 如何在Swift 2.0中将结构保存到NSUserDefaults

标签 ios nsuserdefaults swift2

我有一个名为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/

相关文章:

ios - 如何在锁定屏幕上添加备注/提醒

swift NSMutableURLRequest https 安全吗?

iphone - 使用 sizeWithFont 时的高度 :constrainedToSize:lineBreakMode with NSLineBreakByTruncatingTail

ios - 我可以从UICollectionView中“取出”或“撕下”一个单元格吗?

ios - Xcode - 在构建阶段从 bash 脚本设置/添加环境变量

ios - iPhone 使用 NSUserDefaults 持久化数据

ios - 具有通用(可选)用户默认值的属性包装器

ios - 使用 UIGraphicsImageRenderer 渲染全尺寸图像

ios - iOS10 的 NSUserDefault 问题

ios - 尝试将数组中的随机元素存储在变量 Swift 2 中时出错