【发布时间】:2020-04-14 05:24:16
【问题描述】:
以下是自定义结构。我想存储 [details] 的自定义结构数组。我无法将 [详细信息] 存储在文件中。在写这个[文件中的细节,应用程序崩溃'无效的json格式'
struct details : Identifiable {
let id = UUID()
var name : String?
var time : String?
var msg : [MsgDetails]?
var loc : String?
var type : String?
}
在文件中写入:msgArray 是详细信息数组。 msgArray = [详细信息]。
extension Array {
var jsonStringRepresentation: String? {
let jsonData = try? JSONSerialization.data(withJSONObject: self, options: [])
guard jsonData != nil else {return nil}
let jsonString = String(data: jsonData!, encoding: .utf8)
guard jsonString != nil else {return nil}
return jsonString! as String
}
}
在下面的代码中 NSKeyedArchiver.archivedData 返回 nil
if let dir = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first{
let fileURL = dir.appendingPathComponent(self.fileName)
let data = try? NSKeyedArchiver.archivedData(withRootObject: msgArray.jsonStringRepresentation!, requiringSecureCoding: true)
do {
try data!.write(to: fileURL)
} catch let error {
print("\(error.localizedDescription)")
}
}
【问题讨论】:
-
请向我们展示您迄今为止尝试过的代码。这不是一个“我们免费为您编写代码”的平台,而是一个“我们帮助您编写现有代码”的平台。
-
@Chris,更新了我的帖子