将可映射对象保存到NSUserDefaults的步骤如下:
下面是一个示例代码,演示了如何将可映射对象保存到NSUserDefaults:
import Foundation
class MyObject: NSObject, NSCoding {
var name: String
init(name: String) {
self.name = name
}
func encode(with coder: NSCoder) {
coder.encode(name, forKey: "name")
}
required init?(coder: NSCoder) {
name = coder.decodeObject(forKey: "name") as? String ?? ""
}
}
// 保存可映射对象到NSUserDefaults
let myObject = MyObject(name: "Example")
let defaults = UserDefaults.standard
let encodedData = NSKeyedArchiver.archivedData(withRootObject: myObject)
defaults.set(encodedData, forKey: "myObject")
// 从NSUserDefaults中获取可映射对象
if let decodedData = defaults.object(forKey: "myObject") as? Data {
if let decodedObject = NSKeyedUnarchiver.unarchiveObject(with: decodedData) as? MyObject {
print(decodedObject.name) // 输出: Example
}
}
在这个示例中,我们创建了一个名为MyObject的可映射对象,并实现了NSCoding协议的方法。然后,我们将MyObject对象编码为NSData,并使用NSUserDefaults将其保存到键名为"myObject"的键值对中。最后,我们从NSUserDefaults中获取保存的数据,并将其解码为MyObject对象。
请注意,NSUserDefaults适用于保存较小的数据对象,如果需要保存大量数据或复杂的数据结构,建议使用其他持久化方案,如Core Data或数据库。
腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云