如何在不泄漏的情况下将对象保存到核心数据中

时间:2016-11-23 16:40:46

标签: ios swift multithreading core-data memory-leaks

我有几乎相同的核心数据堆#2:http://floriankugler.com/2013/04/29/concurrent-core-data-stack-performance-shootout/。 (我是单身人士) 在我保存在工作者moc(最后一个moc)后,我得到泄漏(在终端中泄漏app_name)。 这是我的保存功能:

func saveToLast(moc: NSManagedObjectContext?) throws{
        if let moc = moc {
            moc.performAndWait({ _ in
                if moc.hasChanges {
                    do {
                        try moc.save()
                        if let parentMoc = moc.parent {
                            try self.saveToLast(moc: parentMoc)
                        }
                    }
                    catch {

                    }
                }
            })
        }
    }

如果我保持performAndWait我知道迟早我将创建一个死锁,如果我执行theres并不保证后台线程在主线程(按顺序)之前保存在worker上。 任何人都可以解释我如何用串行队列或任何替代我写的东西来保存?

0 个答案:

没有答案