gpt4 book ai didi

json - 在 NSHomeDirectory 中写入 NSData

转载 作者:行者123 更新时间:2023-11-30 14:18:58 25 4
gpt4 key购买 nike

我遇到了一个问题

我从 CoreData 实体创建 JSON 数据。

// name : String
// index : String
// image : NSData
var asJson : [String:AnyObject]{
return ["name" : name, "index" : index , "image" : "\(image)"]
}

总记录我想将其保存在文件中。

let fetch = NSFetchRequest(entityName: kCreditCardCompanies)
let allCredits = ManagedDocument.sharedInstance.managedObjectContext.executeFetchRequest(fetch, error: nil) as! [CreditCardCompanies]

for cards in allCredits{


var jsonCard = ["cards" : cards.asJson]

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0), { () -> Void in
var jsonData = NSJSONSerialization.dataWithJSONObject(jsonCard, options:
NSJSONWritingOptions.PrettyPrinted, error: nil)!
var path = NSHomeDirectory().stringByAppendingPathComponent("Documents")
var directory = path.stringByAppendingPathComponent("creditCard.json")
jsonData.writeToFile(directory, atomically: true)

println("\(jsonData)")
})

}

在“jsonData”中所有记录都存在,但在文件“creditCard.json”中只保存了1条记录,而不是全部。

我的错在哪里?

最佳答案

每次通过,您都会将卡数据的一个实例保存到“creditCard.json”文件中。如果您想将所有卡片写到一个文件中,如下所示:

{
"cards": [
{"name": "foo", "index":12, "image": "<hex data>"},
{"name": "bar", "index":13, "image": "<hex data>"}
]
}

然后你需要将所有卡片收集到一个数组中,然后再将它们制作成 json 对象,取出 for 循环并将 allCredits 映射到 json 表示

替换这个:

for cards in allCredits{
var jsonCard = ["cards" : cards.asJson]

与:

let jsonCard = ["cards": allCredits.map {$0.asJson}]

该行将创建一个字典,其中键是“cards”,值是 allCredits 中的项目数组(json 格式)。

关于json - 在 NSHomeDirectory 中写入 NSData,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30736925/

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