2016-04-02 51 views

回答

1

轉換的SetArray可以保存在NSUserDefaults

let arrayA = Array(setA) 
NSUserDefaults.standardUserDefaults().setObject(arrayA, forKey:"mySet") 

,並獲得數組轉換回Set

let arrayA = NSUserDefaults.standardUserDefaults().objectForKey("mySet") as! [Int] 
let setA = Set(arrayA) 

如果您註冊了鍵/值對正如Apple推薦的

let defaults = NSUserDefaults.standardUserDefaults() 
let defaultValues = ["mySet" : [Int]()] 
defaults.registerDefaults(defaultValues) 

該值從不是nil,可以安全地解包。

+0

vadian,你仍然需要拋出NSUserDefaults.standardUserDefaults()。objectForKey(「mySet」)的結果 – user3441734

+0

@ user3441734當然,謝謝! – vadian

+0

可能是NSUserDefaults.standardUserDefaults()。objectForKey(「mySet」)as? [Int] ?? [Int]()將更好地滿足OP的需求...它不應該由於錯誤的鍵而崩潰,並且註冊默認不再是必需的。我投了你的答案,因爲我不知道registerDefaults()到現在爲止,謝謝! – user3441734