更改CoreData属性条件时更改tableView

时间:2011-02-17 12:37:37

标签: uitableview core-data uibarbuttonitem

寻找有经验的建议,因为我是iOS的新手。 我有“收入”和“费用”的CoreData实体。我有一个tableView来显示费用,另一个用于显示收入。我想按月对费用或收入进行分组,并在tableView上显示数据(费用或收入),并使用工具栏按钮更改显示的月份。按月显示似乎很简单,在实体上使用属性“月”。我的问题是实现“月度显示”的最简洁方法是什么,并使tableView适应“下个月”和“上个月”按钮? 例如,我有tableView显示二月费用。当我触摸下一个按钮时,我想显示带有March Expenses的tableView。 您建议使用“月”的方法是什么?这可能很简单,但如果我采取了错误的指示,对于那些正在开始的人可能会退出。提前致谢

1 个答案:

答案 0 :(得分:0)

我将使用的方法是为月份设置一个typedef枚举(仅为方便起见)

typedef enum 
{
    January = 0,
    February,
    March,
    April,
    May,
    June,
    July,
    August,
    September,
    October,
    November,
    December
} Month;

然后你会让每个实体都有一个属性,这个数字表示实体与之关联的月份。 然后,您可以获得与指定月份相关联的所有实体,如下所示:

NSFetchRequest *request= [[NSFetchRequest alloc] init];
[request setEntity:[NSEntityDescription entityForName:@"<<Your entity name here>>" inManagedObjectContext:managedObjectContext]];
NSPredicate *monthPredicate = [NSPredicate predicateWithFormat:@"month.integerValue == %d", (NSInteger)month];
[request setPredicate:monthPredicate];

该请求应该为您提供与给定月份相关联的所有实体。如果需要,您也可以将月份保存为字符串。希望这有帮助!