简单描述一下我这里遇到的问题: 背景: 主页 Page A ,列表页 Page B ,两个页面都会通过 @FetchRequest 这个 property wrapper 获取数据,并且是根据日期作为过滤条件,start_date >= ... and start_date < ...
@FetchRequest(sortDescriptors: [SortDescriptor(\PlanItem.start_time)])
private var plans: FetchedResults<PlanItem>
....// 省略
self.plans.nsPredicate = NSPredicate(format: "%K >= %@ AND %K < %@", #keyPath(PlanItem.start_time), startDate as NSDate,#keyPath(PlanItem.start_time), endDate as NSDate )
当从 Page A navigate 到 Page B ,且此时 Page A 显示的数据和 Page B 的数据同一天的,也即他们的过滤条件是一致的,如果此时在 Page B 添加该日期的数据或者更新数据,则会导致列出所有日期的数据的问题,也就是日期条件失效了,通过排查发现是 nsPredicate 变为 nil 了。 但如果我此时将 Page B 的日期切换到后一天(即和 Page A 的过滤条件不一致),进行同样的更新操作,则正常运行
在官方论坛找到了一个近似的问题 https://developer.apple.com/forums/thread/692040
相关: https://www.raywenderlich.com/27201015-dynamic-core-data-with-swiftui-tutorial-for-ios
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.