如何将swift中的自定义类保存到NSUserDefaults?

时间:2016-01-16 19:00:34

标签: ios swift nsuserdefaults

我创建了一个名为test的自定义类。我创建了一个名为" game"的变量。等于测试。我试图保存"游戏"到NSUserDefaults并尝试打印来自"游戏"的值。运行项目后,我收到一个错误:"线程1:信号SIGABRT"。如何在不收到此错误的情况下将自定义对象保存到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方法中的全部内容。排除测试类。

1 个答案:

答案 0 :(得分:0)

From the documentation:

  

value参数只能是属性列表对象:NSData,NSString,NSNumber,NSDate,NSArray或NSDictionary。

您需要查看使用NSKeyedArchiver代替自定义对象。