反复调用CoreData

时间:2018-07-30 11:50:31

标签: swift performance core-data

我有一个主从视图,其中主视图过滤器的参数在详细视图上产生。我使用情节提要板并在segue中传递参数。

一切正常,除了我单击“后退”按钮并再次选择一个项目时。那就是加载速度变慢的时候。刚开始时,它会稍微慢一点,但是我做背部运动并选择运动的次数越慢。

我认为问题出在回到主视图控制器之后,核心数据没有释放内存。但我不确定。想知道是否有解决此问题的解决方法?

这是我的详细视图代码:

 static func findByChapterId(_ id: Int16) -> NSFetchedResultsController<Verse>{

    let context = getContext()

    let fetchRequest: NSFetchRequest<Verse>
    fetchRequest = Verse.fetchRequest()
    fetchRequest.predicate = NSPredicate(format: "chapterId == %@", NSNumber(value: id as Int16))
    let sortDescriptor = NSSortDescriptor(key: "verseId", ascending: true)
    let sortDescriptors = [sortDescriptor]
    fetchRequest.sortDescriptors = sortDescriptors
    fetchRequest.returnsObjectsAsFaults = false


    let controller = NSFetchedResultsController(fetchRequest: fetchRequest, managedObjectContext: context, sectionNameKeyPath: "chapterId", cacheName: nil)
    do {
        try controller.performFetch()
    } catch {
        fatalError("Failed to fetch entities: \(error)")
    }

    return controller
}

0 个答案:

没有答案