Objective c 将新值赋给谓词后的xcode更新tableview(按按钮)

Objective c 将新值赋给谓词后的xcode更新tableview(按按钮),objective-c,iphone,uitableview,tableview,predicate,Objective C,Iphone,Uitableview,Tableview,Predicate,嗨,我一直在尝试编写一个数据输入iOS应用程序 每个条目基本上包含开始时间、持续时间和一些其他内容 基本上我有一个ViewController(包含一个表视图)用于报告目的 预期功能是报告将显示所选月份的所有条目 用户通过按“上一个/下一个”按钮选择月份 现在,当我进入页面时,当前月份的所有条目都将显示(如预期的那样) 但是,每当我按下“上一步”按钮时,tableview就会变成空白 - (IBAction)previousPressed:(id)sender { [self.compo

嗨,我一直在尝试编写一个数据输入iOS应用程序

每个条目基本上包含开始时间、持续时间和一些其他内容

基本上我有一个ViewController(包含一个表视图)用于报告目的

预期功能是报告将显示所选月份的所有条目

用户通过按“上一个/下一个”按钮选择月份

现在,当我进入页面时,当前月份的所有条目都将显示(如预期的那样)

但是,每当我按下“上一步”按钮时,tableview就会变成空白

- (IBAction)previousPressed:(id)sender
{
    [self.components setMonth:-1];
    self.rangeStart = [[NSCalendar currentCalendar] dateByAddingComponents:self.components
                  toDate:self.rangeStart options:0];

    self.rangeEnd = [[NSCalendar currentCalendar] dateByAddingComponents:self.components
                 toDate:self.rangeStart options:0];

    ////what next
}
正如您可能猜到的,self.rangeStart和self.rangeEnd的值用于设置谓词。(这是第一次使用,用于显示月份的默认条目)

我尝试了下面的其他方法,但大多数情况下,按下按钮后,tableView将变为空白。我基本上不知道该在下面写什么

我尝试过的事情:(都在下一个领域)

另一个:

SLCoreDataStack *coreDataStack = [SLCoreDataStack defaultStack];
NSFetchRequest *fetchRequest = [self entryListFetchRequest];


_fetchedResultsController = [[NSFetchedResultsController alloc]       
initWithFetchRequest:fetchRequest 
managedObjectContext:coreDataStack.managedObjectContext 
sectionNameKeyPath:@"sectionName" cacheName:nil];
正如我所想,这些都是相关的代码,首先进行抓取

有关我的代码的更多详细信息:

[self.fetchedResultsController performFetch:nil];
基本上,这一切都是从在ViewDidLoad中执行此操作开始的,这将导致fetchedResultsController,它包含我给出的第二部分代码

对于entryListFetchRequest,我基本上只是获取实体并设置以下谓词

NSPredicate *pred = [NSPredicate predicateWithFormat:@"start >= %@ && start <= %@",     self.rangeStart, self.rangeEnd];
NSPredicate*pred=[NSPredicate谓词格式:@“开始>=%@&&start
将月份设置为-1。月份可以是1到12

self.components.month -= 1;
可能有用。但是最好取这个值(如果我的记忆正确的话,请输入NSInteger),修改它,然后写回

NSInteger month = self.components.month;
if (month > 1) {
month--;
} else {
month = 12;
NSInteger year = self.components.year;
year--;
self.components.year = year;
}
self.components.month = month;

这涵盖了上一年一月和十二月的情况。

事实上,我已经用NSLog检查过了,数值已经适当减少了一个月。(以后可能会再次检查)
self.components.month -= 1;
NSInteger month = self.components.month;
if (month > 1) {
month--;
} else {
month = 12;
NSInteger year = self.components.year;
year--;
self.components.year = year;
}
self.components.month = month;