林安静的新Xcode和Objective-C和我试着去建立这个应用的事件,我在我的mainViewController一个两个按钮来显示今天的事件和其他将显示任何未来事件,我的数据是从JSON来文件[其中包括几个按键其中之一是事件的日期],我想到了应用程序将如何通过事件的日期与应用程序中的日历的日期匹配表明这一点的方式,我用这代码:
@implementation MV_HomeViewController {
NSArray *_events;
}
.....
.......
- (IBAction)upcomingEvents:(id)sender {
// Events *event = [_events object:.row];
//Events *event = [_events objectForKey:@"Events"];
NSDate *currDate = [NSDate date];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc]init];
[dateFormatter setDateFormat:@"dd-MM-YYYY"];
NSString *dateString = [dateFormatter stringFromDate:currDate];
if([_events objectForKey:@"date"] != dateString){
[[self myTableView] reloadData];
}
}
但它给我一个错误@ [_events objectForKey:@“日期”]这是完全有道理,因为我有这个动作内再次打电话给我的JSON数据,这是我不知道该怎么办?任何人都可以告诉我如何做到这一点或如何使上述代码适用于我的应用程序? 我将非常感激。
PS,有关我的json文件看起来像plz的详细信息,请参阅我之前发布的上一个问题。
谢谢,
我尝试了下面的答案,但是这个代码:
for (NSDictionary *event in _events) {
// Now you can use [event objectForKey:@"date"] to retrieve the event date
if ([[event objectForKey:@"date"] isEqualToString:dateString]){
[[self myTableView] reloadData];
}
}
但是这次我得到一个错误说 - > - [Events objectForKey:]:无法识别的选择器发送到实例0x74303f0
有人能告诉我现在的问题是什么!!我很困惑......
答案 0 :(得分:0)
objectForKey:
是NSDictionary
方法,而不是NSArray
方法。要从数组中检索事件字典,可以使用objectAtIndex:
。如果要循环遍历数组中的所有事件字典,可以使用快速枚举,如下所示:
for (NSDictionary *event in _events) {
// Now you can use [event objectForKey:@"date"] to retrieve the event date
}
比较字符串时,请使用isEqualToString:
而不是等于运算符(==
)或不等运算符(!=
)。