我有一个主从视图,其中主视图过滤器的参数在详细视图上产生。我使用情节提要板并在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
}