在我的父 View 中,我有以下代码:
Text(String((todoList.todoItems as! Set<TodoItem>).filter({ $0.checked }).count))
Text("/")
Text(String(todoList.todoItems?.count ?? 0))
例如,如果我检查
了 5 个任务中的 2 个,我会得到 2/5
。
当 todoItems
更改时,第一个计数(使用过滤器)不会更新,但第二个计数会更新。如果我完全关闭应用程序并重新打开它,第一个计数确实会显示正确的数字。
当关系发生变化时,如何使第一个数字像第二个数字一样更新,而无需重新启动应用程序?
最佳答案
我通过向 TodoList
CoreData 表添加一个名为 dateChecked
的新列来修复此问题。每当检查某个项目时,我只需使用当前日期更新该值,然后根据需要将更改推送到 View 。
关于ios - 过滤的关系计数未在父 View 中更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59554189/