gpt4 book ai didi

ios - 如何在Swift 3中使用持久化并检索与NSCoding兼容的对象到app文档目录?

转载 作者:行者123 更新时间:2023-12-01 20:06:55 30 4
gpt4 key购买 nike

这是一个符合NSCoding的对象。我想从Swift 3的应用程序文档目录中保存和恢复它。我想这是一种保存方法和恢复方法。怎么做?

import Foundation

class Book: NSObject, NSCoding {
var title: String
var author: String
var pageCount: Int
var categories: [String]
var available: Bool

init(title:String, author: String, pageCount:Int, categories:[String],available:Bool) {
self.title = title
self.author = author
self.pageCount = pageCount
self.categories = categories
self.available = available
}

// MARK: NSCoding
required convenience init?(coder: NSCoder) {

let title = coder.decodeObject(forKey: "title") as! String
let author = coder.decodeObject(forKey: "author")as! String
let categories = coder.decodeObject(forKey: "categories") as! [String]
let available = coder.decodeBool(forKey: "available")
let pageCount = coder.decodeInteger(forKey: "pageCount")

self.init(title:title, author:author,pageCount:pageCount,categories: categories,available:available)
}

func encode(with: NSCoder) {
with.encode(self.title, forKey: "title")
with.encode(self.author, forKey: "author")
with.encode(Int32(self.pageCount), forKey: "pageCount")
with.encode(self.categories, forKey: "categories")
with.encode(self.available, forKey: "available")
}
}

谢谢!

最佳答案

保存:

// Get documents directory
if let docs = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true).first {

// Append your file name to the directory path
let path = (docs as NSString).appendingPathComponent("filename")

// Archive your object to a file at that path
NSKeyedArchiver.archiveRootObject(yourObject, toFile: path)
}

正在加载:
// Get documents directory
if let docs = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true).first {

// Append your file name to the directory path
let path = (docs as NSString).appendingPathComponent("filename")

// Unarchive your object from the file
let yourObject = NSKeyedUnarchiver.unarchiveObject(withFile: path) as? Book

// do whatever with yourObject
}

关于ios - 如何在Swift 3中使用持久化并检索与NSCoding兼容的对象到app文档目录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38666015/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com