【发布时间】:2016-08-25 09:00:26
【问题描述】:
我在客户端-服务器应用程序中工作。我正在发送请求,在得到响应后转到后台线程解析数据,在所有数据解析后,我将转到主线程。在领域事务中写入的所有数据都存在于后台线程中,但在主线程中它是空的。这是我的代码的一部分: 一开始我有 20 个对象
Alamofire.request(.GET, urlRequest).responseJSON(completionHandler: { response in
guard let dictionary = response.result.value as? [String : AnyObject]
else {
completion(response: false)
return
}
if dictionary["status"] != nil {
completion(response: false)
}
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), {
print("\(NSDate()) start parse feeds with offset")
self.parseArticle(dictionary, data: [])
print("\(NSDate()) finish parse feeds with offset")
UserSession.feedsLoaded = true
//here I have 40 objects
dispatch_async(dispatch_get_main_queue(), {
//here I have again 20 objects, which I had at start
completion(response: true)
})
})
})
func parseArticle(dictionary : [String : AnyObject], data : [String]) {
var startData = data
var endData : [String] = []
let realm = try! Realm()
let _ = try? realm.write() {here is the code of my parser}}
后台线程提交的数据在主线程的realm中没有出现的问题,如何处理?
【问题讨论】:
-
问题是什么?请更新您的帖子
-
问题是,数据在哪里添加到领域?
标签: database multithreading realm grand-central-dispatch