0

我正在学习 Core Data,我有一个项目正在运行,可以很好地存储、创建、检索、更新和删除实体。到目前为止,我喜欢使用 Core Data。

我有一个具有 5 个属性的简单实体。其中之一是约会。我称之为日期创建。我在我的应用程序中使用 TabBar,我希望能够按年份和月份以及月份详细信息对不同屏幕上的内容进行排序。我有几个关于什么是好的做法以及什么对性能有好处的问题。

所以理想情况下,我希望我的集合视图按年份划分,每个单元格包含一个月份,将它们带到那个月份表。目前在我的一个选项卡中有一个 UITableView 加载用户创建的数据,但我还没有按年和月分解它。这意味着他们可以继续输入日期和其他信息,而一张桌子只会越来越大。我很想使用 Date Attribute my - dateCreated 属性在我的 Collection View 中将每个月的表格分成多个表格。似乎所有数据都已准备就绪,可以按我的意愿进行最小化和显示,但我不确定这是否是最好的方法,或者即使它是使用 Core Data 时的标准做法。我想我可以使用同一张表根据年份和月份加载数据。而不是制作多个月份的表格。

我的问题很长:我应该创建更多的 Date 属性还是使用我的 TableView 中显示的 dateCreated 使用格式化程序将其显示为“2013 年 7 月 31 日”。换句话说,我可以仅根据我的 dateCreated 属性分解用户创建的数据。第二。我了解如何从核心数据堆栈“获取”数据并使用 NSFetchedResutsController 在 TableView 中获取数据,但是如果我想在不包含表格视图的屏幕中显示实体的某些属性怎么办。我应该仍然使用 NSFetchedResultsController,还是应该使用其他东西?Apple Docs on Fetching Data 展示了如何从要显示的实体中获取特定属性,但对于如此简单的事情来说似乎有太多代码,以至于我认为我看错了部分。

好的,我明白这听起来有点令人困惑,所以我想知道我是否应该使用我的 dateCreated 属性来分解数据,或者创建更多的 Date 属性,一个用于一年,一个用于一个月,并保留一个用于 dateCreated 并以这种方式排序. 此外,如果我只想在屏幕上显示某些属性数据而没有表格,我是否仍应使用 NSFetchedResultsController?

感谢您提供的所有帮助。我在学习 Core Data 时玩得很开心。它真的很强大。

4

1 回答 1

0

您可能希望将用于获取的谓词调整为:

    NSDate *startDate = ....;
NSTimeInterval length;

[[NSCalendar currentCalendar] rangeOfUnit:NSMinuteCalendarUnit 
                                startDate:&startDate
                                 interval:&length 
                                  forDate:startDate];

NSDate *endDate = [startDate dateByAddingTimeInterval:length];

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"(eDate >= %@) AND (eDate < %@)", startDate, endDate];
于 2014-07-23T09:34:14.587 回答