【发布时间】:2017-07-10 13:03:32
【问题描述】:
我正在尝试保存一个类数组,这是我目前的代码:
数组:
var person1 = person(name: "Bob", age: 22)
var person2 = person(name: "John", age: 10)
var array = [person1, person2]
自定义类:
import UIKit
class person: NSObject, NSCoding {
var name : String
var age : Int
init(name: String, age: Int) {
self.name = name
self.age = age
}
required init (coder aDecoder: NSCoder) {
name = (aDecoder.decodeObject(forKey: "name") as? String)!
age = (aDecoder.decodeObject(forKey: "age") as? Int)!
}
func encode(with aCoder: NSCoder) {
aCoder.encode(name, forKey: "name")
aCoder.encode(age, forKey: "age")
}
}
保存数组:
let SavedData = NSKeyedArchiver.archivedData(withRootObject: array)
let defaults = UserDefaults.standard
defaults.set(SavedData, forKey: "myPeople")
加载数组:
let saveddata = UserDefaults.standard.object(forKey: "myPeople") as? Data
if saveddata != nil{
array = (NSKeyedUnarchiver.unarchiveObject(with: saveddata!) as? [person])!
}
错误在age = (aDecoder.decodeObject(forKey: "age") as? Int)!这一行
Interface Builder 文件中的未知类 iewripple。
【问题讨论】: