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 –