2016-01-16 36 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 –

回答

相关问题