我在CoreData中有一个 - Found app/requirements.txt [master] | Failed to process manifest app/requirements.txt
对象的大型数据集(约3000个项目)。添加新项目时出现性能问题:动画大约需要2秒钟。这是代码:
MoodEntry
。
@Environment(\.managedObjectContext) var context
@FetchRequest(fetchRequest: MoodEntry.getAllMoodItems()) var moodEntries: FetchedResults<MoodEntry>
是否会因为我每次添加新项目时都保存所有上下文而发生问题?有一个简单的解决方案吗?
答案 0 :(得分:0)
您是否已经尝试在后台线程中执行所有操作?
Button(action: {
DispatchQueue.global(qos: .background).async {
let moodEntry = MoodEntry(context: context)
moodEntry.value = 1
moodEntry.date = Date()
moodEntry.id = UUID()
do {
try context.save()
} catch {
print(error)
}
}
let impactLight = UIImpactFeedbackGenerator(style: .light)
impactLight.impactOccurred()
}) { Image("Button1").renderingMode(.original) }
答案 1 :(得分:0)
什么动画慢?我猜您有一个列表,其中显示了获取请求的结果,而那就是更新缓慢的原因。如果是这样:速度很慢,因为SwiftUI会逐行显示。一种解决方法是在List上设置.id(UUID()),以便在不区分行的情况下重新生成整个对象。这是一个解释:https://www.hackingwithswift.com/articles/210/how-to-fix-slow-list-updates-in-swiftui