【发布时间】:2016-08-11 05:25:50
【问题描述】:
所以我有一些代码可以将背景数据解析到我的 Realm 数据库中。当我在没有异步线程的情况下进行调用时,数据库大约需要 10 秒来填充(JSON 有 1000 个条目)并且应用程序在此期间冻结,因为 swiftyJson 很慢(原生 JSON 也需要大约 2 秒)。
当我添加异步调用时,它修复了冻结问题,但是我的数据库现在是 50 MB 而不是之前的 500kb....知道发生了什么吗?欢迎所有帮助
func loadDataForLocalCategory() {
let URL = "SomeURL"
Alamofire.request(.GET, URL).validate().responseJSON { response in
switch response.result {
case .Success:
let priority = DISPATCH_QUEUE_PRIORITY_DEFAULT
dispatch_async(dispatch_get_global_queue(priority, 0)) {
if let value = response.result.value {
let realm = try! Realm()
let json = JSON(value)
for item in json["result"].arrayValue {
let localCategory = LocalDataCategory()
localCategory.id = item["id"].intValue
// print(item["name"].stringValue)
localCategory.name = item["name"].stringValue
try! realm.write {
realm.add(localCategory,update: true)
}
}
}
}
case .Failure(let error):
print(error)
}
}
}
【问题讨论】:
标签: json swift multithreading realm alamofire