Uitableview 更改CoreData属性条件时更改tableView

Uitableview 更改CoreData属性条件时更改tableView,uitableview,core-data,uibarbuttonitem,Uitableview,Core Data,Uibarbuttonitem,寻找有经验的建议,因为我是iOS新手。 我有“收入”和“费用”的CoreData实体。我有一个表格视图显示费用,另一个显示收入。我想按月对费用或收入进行分组,并在tableView上显示数据(费用或收入),并使用工具栏按钮更改显示的月份。按月份显示似乎很简单,在实体上使用属性“month”。我的问题是,实现“每月显示”和调整tableView以响应“下个月”和“上个月”按钮的最干净的方法是什么? 例如,我有一个显示2月份费用的tableView。当我按下“下一步”按钮时,我想显示一个包含三月费用

寻找有经验的建议,因为我是iOS新手。 我有“收入”和“费用”的CoreData实体。我有一个表格视图显示费用,另一个显示收入。我想按月对费用或收入进行分组,并在tableView上显示数据(费用或收入),并使用工具栏按钮更改显示的月份。按月份显示似乎很简单,在实体上使用属性“month”。我的问题是,实现“每月显示”和调整tableView以响应“下个月”和“上个月”按钮的最干净的方法是什么? 例如,我有一个显示2月份费用的tableView。当我按下“下一步”按钮时,我想显示一个包含三月费用的tableView。
你建议用“月”来做什么?这可能很简单,但对于一个刚开始的人来说,如果我选择了错误的方向,他可能会很难放弃。提前感谢

我将使用的方法是为当月创建一个typedef枚举(只是为了方便起见)

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

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];
NSFetchRequest*request=[[NSFetchRequest alloc]init];
[request setEntity:[NSEntityDescription entityForName:@”“inManagedObjectContext:managedObjectContext]];
NSPredicate*monthPredicate=[NSPredicate谓词格式:@“month.integerValue==%d”,(NSInteger)month];
[请求集谓词:monthPredicate];

该请求将为您获取与给定月份关联的所有实体。如果需要,还可以将月份另存为字符串。希望这有帮助

谢谢你的回复。我需要几天才能开始实施,但你给了我一个起点。您如何在同一个月显示不同的表视图(费用和收入)同步?这是,我有一个TabBar,在那里我可以从费用和收入中进行更改。如果“我的费用”视图设置为特定月份,我希望在选择收入时显示为费用选择的同一月份?谢谢你花时间帮忙。你的建议符合我的要求。我最终使用了两个实体和一个与多个实体的关系。它更符合我的想法。谢谢你让我思考和学习。
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];