gpt4 book ai didi

ios - 应用程序 ID 和读/写文件

转载 作者:行者123 更新时间:2023-11-28 13:36:51 25 4
gpt4 key购买 nike

我正在从我的 iOS 应用程序写入和读取文件:

func saveChecklistItems() {
let data = NSMutableData()
let archiver = NSKeyedArchiver(forWritingWith: data)
archiver.encode(items, forKey: "ChecklistItems")
archiver.finishEncoding()
print("save \(dataFileDir())")
data.write(toFile: dataFileDir(), atomically: true)
}

func loadChecklistItems() {

print("load \(dataFileDir())")
let path = dataFileDir()
if FileManager.default.fileExists(atPath: path) {
if let data = NSData.init(contentsOfFile: path) {
do {
let unarchiver = try NSKeyedUnarchiver(forReadingFrom: data as Data)
items = unarchiver.decodeObject(forKey: "ChecklistItems") as! [CheckListItem]
unarchiver.finishDecoding()
} catch {
print(error)
}
}
}
}

func documentsDirectory() -> String {
let paths = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true) as [String]
return paths[0]
}

func dataFileDir() -> String {
return documentsDirectory().appending("Checklists.plist")
}

但每次我在 Xcode 中按运行时,应用程序都会以新 ID 部署在我的 iPhone 上:

save /var/mobile/Containers/Data/Application/4684F231-7A41-461C-AD5C-FB0F66A9DA31/DocumentsChecklists.plist

load /var/mobile/Containers/Data/Application/CFE42D59-6F3F-4D47-96B5-4F81C640127A/DocumentsChecklists.plist

这是我在 iOS 开发中的第一步,我想知道在这种情况下我需要做什么?将应用程序 ID 设置为静态?还是别的?

最佳答案

我建议您在处理文件夹和文件时使用 URL 而不是字符串

func documentsDirectory() -> URL {
let paths = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)
return paths[0]
}

func dataFileDir() -> URL {
return documentsDirectory().appendingPathComponent("Checklists.plist")
}

并将您的写入更改为

try data.write(to: dataFileDir(),  options: .atomic)

关于ios - 应用程序 ID 和读/写文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56494588/

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