如何通过 NSUserDefaults 保存/加载 Set 类型?

Joe*_*ang 7 swift swift2

我正在使用 Swift 并且有一个包含 Int 的 Set 类型:

var setA : Set<Int>
Run Code Online (Sandbox Code Playgroud)

如何使用 保存/加载此 Set 类型NSUserDefaults

vad*_*ian 5

转换SetArray可以保存的格式NSUserDefaults

let arrayA = Array(setA)
NSUserDefaults.standardUserDefaults().setObject(arrayA, forKey:"mySet")
Run Code Online (Sandbox Code Playgroud)

并获取数组并将其转换回Set

let arrayA = NSUserDefaults.standardUserDefaults().objectForKey("mySet") as! [Int]
let setA = Set(arrayA)
Run Code Online (Sandbox Code Playgroud)

如果您按照 Apple 的建议注册键/值对

let defaults = NSUserDefaults.standardUserDefaults()
let defaultValues = ["mySet" : [Int]()]
defaults.registerDefaults(defaultValues)
Run Code Online (Sandbox Code Playgroud)

该值永远不会nil并且可以安全地解开。