这是我的场景:
我有一个小的 json 文件,当用户打开应用程序时会生成该文件,并且每当用户最小化或终止应用程序时都需要将其发送到服务器。我当前的逻辑包括在应用程序支持目录中创建一个文件夹,我们称之为测试,在应用程序启动期间并将 json 文件存储在其中。将文件发送到服务器后,我将其删除。
这适用于大多数用户,除了内存不足的用户,在这种情况下,操作系统不允许我创建文件夹和保存文件。这导致我需要的大部分信息被丢弃。
这是我的选择
- 使用磁盘和内存的组合来存储文件。
- 使用
UserDefaults
也许。
这是我创建文件夹/保存文件的代码
let fileManager = FileManager.default
if let documentDirectory = fileManager.urls(for: .applicationSupportDirectory,
in: .userDomainMask).first {
let folderURL = documentDirectory.appendingPathComponent(storeName)
if !fileManager.fileExists(atPath: folderURL.path) {
do {
try fileManager.createDirectory(atPath: folderURL.path,
withIntermediateDirectories: true,
attributes: nil)
} catch {
print(error.localizedDescription)
}
}
encodedData!.write(to: pathAsURL, options: .atomic)
我对如何减少这里的损失一无所知,欢迎任何帮助。