2016-01-16 35 views
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方法。不包括測試課程。

+0

你需要使你的類NSCoding兼容,並使用NSKeyedArchiver轉換爲NSData,然後保存到NSUserDefaults或將其保存到plist文件 –

+0

@ leo-dabus,以及如果我不想將NSObject用作超類? –

+1

http://stackoverflow.com/a/33194374/2303865 –

回答

相關問題