ios - 过滤的关系计数未在父 View 中更新

标签 ios swift swiftui

在我的父 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/

相关文章:

ios - 没有可编译的体系结构(ONLY_ACTIVE_ARCH=YES,事件 arch=x86_64,VALID_ARCHS=i386)?

ios - didBegin 函数在 IOS 11.3 上不能正常工作

iOS - 如何水平居中放置未知数量的不同尺寸的 subview 。

ios - SwiftUI 文本字段触发器手动提交 iOS

iphone - 查看iphone设置中是否启用了3G

ios - UiLabel 识别 TableViewCell Swift 中的 URL

swift - 在 SwiftUI 中正确使用 Task { }

ios - 使用全屏图像和导航查看链接

objective-c - 如何从不同的 View Controller 以不同的方式响应 applicationWillResignActive

swift - SwiftUI用按钮更改 View