0
我做了一個名爲test的自定義類。我做了一個名爲「遊戲」的變量等於測試。我嘗試將「遊戲」保存到NSUserDefaults並嘗試從「遊戲」打印值。運行該項目後,我得到一個錯誤:「線程1:信號SIGABRT」。如何將自定義對象保存到NSUserDefaults而不會出現此錯誤?如何將swift中的自定義類保存爲NSUserDefaults?
這裏是我的類:
class Test {
var boolean = false
var int = 1
var arr = ["one": 1]
}
這是我保存代碼:
let defaults = NSUserDefaults.standardUserDefaults()
let game = Test()
game.arr = ["two": 3]
game.hi = true
game.int = 100
defaults.setObject(game, forKey: "SG")
let gameSet = defaults.objectForKey("SG")! as! Test
print(gameSet.int)
print(gameSet.boolean)
print(gameSet.arr["one"])
這是所有在viewDidLoad方法。不包括測試課程。
你需要使你的類NSCoding兼容,並使用NSKeyedArchiver轉換爲NSData,然後保存到NSUserDefaults或將其保存到plist文件 –
@ leo-dabus,以及如果我不想將NSObject用作超類? –
http://stackoverflow.com/a/33194374/2303865 –