【发布时间】:2014-02-02 22:32:03
【问题描述】:
我试图在按下今天的按钮时将与今天的日期匹配的事件(数据)(来自 json 文件)加载到我的 tableView 中,然后只有具有今天日期的数据将被加载到那里,当按下未来按钮时,事件稍后的日期将被加载,我在这里遇到的唯一问题是当我运行我的程序时,当我按下这些 UI 按钮中的任何一个时,实际上什么都没有发生,我得到了所有事件,不管它们的日期,甚至没有点击任何 UIButton,你可以请看下面我的一些代码,如果有人能弄清楚那里的问题是什么,那就太好了,因为我不确定如何使用谓词来过滤数据:
@property (strong, nonatomic) NSArray *dateEvents;
@end
@implementation HomeViewController {
NSArray *_events;
NSArray *_dateEvents;
}
- (IBAction)upcomingEvents:(id)sender {
NSDate *currDate = [NSDate date];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc]init];
[dateFormatter setDateFormat:@"dd-MM-YYYY"];
NSString *dateString = [dateFormatter stringFromDate:currDate];
NSLog(@"mama");
_dateEvents = [_events filteredArrayUsingPredicate:[NSPredicate predicateWithBlock:^BOOL(Events * event, NSDictionary *bindings){
return [event.date isEqualToString:dateString];
}]];
self.myTableView.dataSource = self;
[self.myTableView reloadData];
NSLog(@"yes");
}
谢谢,
【问题讨论】:
-
你确认
upcomingEvents被调用了吗?_dateEvents过滤后内容是否正确?_dateEvents是否在cellForRowAtIndexPath和其他数据源方法中使用? -
@MartinR 我有一个 json 文件,其中包含所有日期的所有事件,未调用即将到来的,我不知道过滤后 _dateEvents 是否具有正确的内容,因为所有事件都加载一次无论我按下今天还是未来的按钮,我都会启动我的应用程序.. 我怀疑这是我的问题!我没有在我的数据源方法中调用 _dateEvents,因为我不知道如何调用,我只是调用了 _events,顺便说一下,我在 tableView 中使用了自定义单元格。
标签: objective-c json uibutton nspredicate xcode4.6