在iOS中,可以使用归档(Archiving)来保存包含自定义对象的数组,以便加载和重用。归档是一种将对象转换为二进制数据的过程,可以将对象保存到文件中或者存储在内存中。
下面是一种保存包含自定义对象的数组的方法:
encode(with:)
和init(coder:)
,用于将对象编码为二进制数据和从二进制数据解码为对象。class CustomObject: 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 ?? ""
}
}
let object1 = CustomObject(name: "Object 1")
let object2 = CustomObject(name: "Object 2")
let object3 = CustomObject(name: "Object 3")
let array = [object1, object2, object3]
let fileURL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first?.appendingPathComponent("data.archive")
do {
let data = try NSKeyedArchiver.archivedData(withRootObject: array, requiringSecureCoding: false)
try data.write(to: fileURL)
} catch {
print("Failed to save data: \(error)")
}
var loadedArray: [CustomObject] = []
do {
let loadedData = try Data(contentsOf: fileURL)
if let array = try NSKeyedUnarchiver.unarchiveTopLevelObjectWithData(loadedData) as? [CustomObject] {
loadedArray = array
}
} catch {
print("Failed to load data: \(error)")
}
现在,你可以使用loadedArray
数组中的对象进行重用。
这里推荐使用腾讯云的对象存储服务 COS(Cloud Object Storage),它提供了高可靠性、低成本的对象存储解决方案,适用于存储和管理任意类型的文件和媒体数据。你可以将归档的数据上传到COS中进行长期保存和备份。
腾讯云COS产品介绍链接地址:https://cloud.tencent.com/product/cos
领取专属 10元无门槛券
手把手带您无忧上云