如何对核心数据对象进行分组,以便系统删除全部或不删除核心数据对象



我可以使用什么策略来解决这种情况?

我有一个视图控制器,它显示某一天发生的所有事件。

viewWillAppear中,首先尝试获取对象来填充事件。如果没有找到对象,则使用web服务请求当天的事件。

如果用户想转到第二天,那么他们可以点击"第二天"按钮。像viewWillAppear一样,这个按钮尝试获取,如果没有返回结果,它会连接到web服务。

问题:如果用户多次点击"第二天",然后返回到第一天,fetch将不会返回任何对象,或者更糟,它只返回当天的一些对象。

这给用户的印象是他们正在查看当天事件的完整列表,而实际上它只是部分。

我的理论是,你可以创建的核心数据对象的允许内存空间有某种限制,所以它会释放旧的内存空间。这可能吗?

我怎么写我的事件视图控制器,使iOS要么删除某一天的所有对象,要么保留当天的所有对象,并删除另一天?

@DuncanGroenwald和@MatthiasBauch在这种情况下都是正确的。

应用程序逻辑是错误的,因为web服务获取的事件重复了eventid,因此在一周的特定日期具有相同的id。

例如,可能eventid 1-4在任何星期一被获取,5-7在星期二,8-10在星期三…等。当创建了一周中任意两个相同的日子,比如8月15日(星期六)和8月22日(星期六),第一天(8月15日)的活动将被删除,因为eventid是相同的。

所以我真的没有意识到这个事实,我最初的假设是内存不足是不正确的。很明显,我点击"第二天"的次数太多了,以至于我最终到达了本周的同一日期。

我的解决方案是通过添加日期来使eventID唯一:

originalEventID日期 = originalEventID (12345) + 日期(08152015)

so eventDateID == 1234508152015

我还必须创建不同的访问器方法来与具有特定原始事件id和内部事件id的web服务对话。

现在应用程序保留了所有的事件,我可以停止指责iOS!

最新更新