我有一个包含以下信息的数组,从JSON中检索:
Contents of events: (
"<CalendarModel> \n [title]: Arsenal v Man Utd\n [time]: (\n \"<Time> \\n [startTime]: 2013-04-28T17:00:00.000+02:...\n</CalendarModel>",
"<CalendarModel> \n [title]: Reading v QPR\n [time]: (\n \"<Time> \\n [startTime]: 2013-04-28T14:30:00.000+02:...\n</CalendarModel>",
"<CalendarModel> \n [title]: Newcastle v Liverpool\n [time]: (\n \"<Time> \\n [startTime]: 2013-04-27T18:30:00.000+02:...\n</CalendarModel>",
"<CalendarModel> \n [title]: TBC\n [time]: (\n \"<Time> \\n [startTime]: 2013-04-27T16:00:00.000+02:...\n</CalendarModel>",
"<CalendarModel> \n [title]: Man City v West Ham\n [time]: (\n \"<Time> \\n [startTime]: 2013-04-27T13:45:00.000+02:...\n</CalendarModel>",
"<CalendarModel> \n [title]: Man Utd v Aston Villa\n [time]: (\n \"<Time> \\n [startTime]: 2013-04-22T21:00:00.000+02:...\n</CalendarModel>",
"<CalendarModel> \n [title]: Liverpool v Chelsea\n [time]: (\n \"<Time> \\n [startTime]: 2013-04-21T17:00:00.000+02:...\n</CalendarModel>",
"<CalendarModel> \n [title]: Spurs v Man City\n [time]: (\n \"<Time> \\n [startTime]: 2013-04-21T14:30:00.000+02:...\n</CalendarModel>",
"<CalendarModel> \n [title]: Fulham v Arsenal\n [time]: (\n \"<Time> \\n [startTime]: 2013-04-20T16:00:00.000+02:...\n</CalendarModel>",
"<CalendarModel> \n [title]: West Ham v Man Utd\n [time]: (\n \"<Time> \\n [startTime]: 2013-04-17T20:45:00.000+02:...\n</CalendarModel>",
"<CalendarModel> \n [title]: Arsenal v Everton\n [time]: (\n \"<Time> \\n [startTime]: 2013-04-16T20:45:00.000+02:...\n</CalendarModel>",
"<CalendarModel> \n [title]: Chelsea v Man City\n [time]: (\n \"<Time> \\n [startTime]: 2013-04-14T17:00:00.000+02:...\n</CalendarModel>",
"<CalendarModel> \n [title]: Stoke v Man Utd\n [time]: (\n \"<Time> \\n [startTime]: 2013-04-14T15:00:00.000+02:...\n</CalendarModel>",
"<CalendarModel> \n [title]: Millwall v Wigan\n [time]: (\n \"<Time> \\n [startTime]: 2013-04-13T18:15:00.000+02:...\n</CalendarModel>",
"<CalendarModel> \n [title]: Reading v Liverpool\n [time]: (\n \"<Time> \\n [startTime]: 2013-04-13T16:00:00.000+02:...\n</CalendarModel>",
"<CalendarModel> \n [title]: FC Basel v Spurs\n [time]: (\n \"<Time> \\n [startTime]: 2013-04-11T21:05:00.000+02:...\n</CalendarModel>",
"<CalendarModel> \n [title]: Rubin Kazan v Chelsea\n [time]: (\n \"<Time> \\n [startTime]: 2013-04-11T21:05:00.000+02:...\n</CalendarModel>",
"<CalendarModel> \n [title]: Juventus v Bayern Munich\n [time]: (\n \"<Time> \\n [startTime]: 2013-04-10T20:45:00.000+02:...\n</CalendarModel>",
"<CalendarModel> \n [title]: Barcelona v Paris St Germain\n [time]: (\n \"<Time> \\n [startTime]: 2013-04-10T20:45:00.000+02:...\n</CalendarModel>",
"<CalendarModel> \n [title]: Everton v Stoke\n [time]: (\n \"<Time> \\n [startTime]: 2013-03-30T18:30:00.000+01:...\n</CalendarModel>",
"<CalendarModel> \n [title]: Swansea v Spurs\n [time]: (\n \"<Time> \\n [startTime]: 2013-03-30T16:00:00.000+01:...\n</CalendarModel>",
"<CalendarModel> \n [title]: Sunderland v Man Utd\n [time]: (\n \"<Time> \\n [startTime]: 2013-03-30T13:45:00.000+01:...\n</CalendarModel>",
"<CalendarModel> \n [title]: Ireland v Austria\n [time]: (\n \"<Time> \\n [startTime]: 2013-03-26T20:45:00.000+01:...\n</CalendarModel>",
"<CalendarModel> \n [title]: Denmark v Bulgaria\n [time]: (\n \"<Time> \\n [startTime]: 2013-03-26T20:15:00.000+01:...\n</CalendarModel>",
"<CalendarModel> \n [title]: Sweden v Ireland\n [time]: (\n \"<Time> \\n [startTime]: 2013-03-22T19:45:00.000+01:...\n</CalendarModel>",
"<CalendarModel> \n [title]: Dennis McLaughlin\n [time]: (\n \"<Time> \\n [startTime]: 2013-03-31T22:30:00.000+02:...\n</CalendarModel>",
"<CalendarModel> \n [title]: Lee Thomas\n [time]: (\n \"<Time> \\n [startTime]: 2013-03-30T23:00:00.000+01:...\n</CalendarModel>",
"<CalendarModel> \n [title]: Lee Thomas\n [time]: (\n \"<Time> \\n [startTime]: 2013-03-29T22:30:00.000+01:...\n</CalendarModel>",
"<CalendarModel> \n [title]: Lee Thomas\n [time]: (\n \"<Time> \\n [startTime]: 2013-03-28T21:30:00.000+01:...\n</CalendarModel>",
"<CalendarModel> \n [title]: Lee Thomas\n [time]: (\n \"<Time> \\n [startTime]: 2013-03-27T21:30:00.000+01:...\n</CalendarModel>",
"<CalendarModel> \n [title]: Pat Kelly\n [time]: (\n \"<Time> \\n [startTime]: 2013-02-14\\n [endTime]: 2...\n</CalendarModel>",
"<CalendarModel> \n [title]: Ray Weaver\n [time]: (\n \"<Time> \\n [startTime]: 2013-01-31\\n [endTime]: 2...\n</CalendarModel>",
"<CalendarModel> \n [title]: Take the Biscuit\n [time]: (\n \"<Time> \\n [startTime]: 2013-01-24\\n [endTime]: 2...\n</CalendarModel>",
"<CalendarModel> \n [title]: The McLaughlin Clan\n [time]: (\n \"<Time> \\n [startTime]: 2013-01-18\\n [endTime]: 2...\n</CalendarModel>",
"<CalendarModel> \n [title]: Local Artist\n [time]: (\n \"<Time> \\n [startTime]: 2013-01-17\\n [endTime]: 2...\n</CalendarModel>",
"<CalendarModel> \n [title]: Richie Vargas\n [time]: (\n \"<Time> \\n [startTime]: 2013-01-10\\n [endTime]: 2...\n</CalendarModel>",
"<CalendarModel> \n [title]: Tom Valbak\n [time]: (\n \"<Time> \\n [startTime]: 2012-12-28\\n [endTime]: 2...\n</CalendarModel>",
"<CalendarModel> \n [title]: Tom Brakl\n [time]: (\n \"<Time> \\n [startTime]: 2012-12-25\\n [endTime]: 2...\n</CalendarModel>",
"<CalendarModel> \n [title]: Tom Brakl\n [time]: (\n \"<Time> \\n [startTime]: 2012-12-23\\n [endTime]: 2...\n</CalendarModel>",
"<CalendarModel> \n [title]: Dessie Higgins\n [time]: (\n \"<Time> \\n [startTime]: 2012-12-20\\n [endTime]: 2...\n</CalendarModel>",
"<CalendarModel> \n [title]: Pat Kelly\n [time]: (\n \"<Time> \\n [startTime]: 2012-12-13\\n [endTime]: 2...\n</CalendarModel>",
"<CalendarModel> \n [title]: Rich Vargas\n [time]: (\n \"<Time> \\n [startTime]: 2012-12-06\\n [endTime]: 2...\n</CalendarModel>",
"<CalendarModel> \n [title]: Lee Thomas\n [time]: (\n \"<Time> \\n [startTime]: 2012-11-22\\n [endTime]: 2...\n</CalendarModel>",
"<CalendarModel> \n [title]: International Jam Session\n [time]: (\n \"<Time> \\n [startTime]: 2012-09-03T21:00:00.000+02:...\n</CalendarModel>",
"<CalendarModel> \n [title]: Kevin McKernan\n [time]: (\n \"<Time> \\n [startTime]: 2012-08-30\\n [endTime]: 2...\n</CalendarModel>",
"<CalendarModel> \n [title]: Lee Thomas\n [time]: (\n \"<Time> \\n [startTime]: 2012-08-09\\n [endTime]: 2...\n</CalendarModel>",
"<CalendarModel> \n [title]: Ray Weaver\n [time]: (\n \"<Time> \\n [startTime]: 2012-07-19\\n [endTime]: 2...\n</CalendarModel>",
"<CalendarModel> \n [title]: Gray Hawthorn\n [time]: (\n \"<Time> \\n [startTime]: 2012-07-05\\n [endTime]: 2...\n</CalendarModel>",
"<CalendarModel> \n [title]: Jimmy Walsh\n [time]: (\n \"<Time> \\n [startTime]: 2012-06-07\\n [endTime]: 2...\n</CalendarModel>",
"<CalendarModel> \n [title]: Take The Biscuit\n [time]: (\n \"<Time> \\n [startTime]: 2012-11-29\\n [endTime]: 2...\n</CalendarModel>"
我正在尝试使用startTime(只有日期,而不是小时和分钟)创建tableview作为titleForHeaderInSection。包含事件的NSMutableArray称为事件
任何人都可以帮助我朝着正确的方向前进。现在看来,我收到的数据没有标题,只有事件。我现在有以下内容,但我仍在测试。这至少会创建一个名为Test
的标题 #pragma mark - table methods
-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
return events.count;
}
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return 1;
}
- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section {
CalendarModel* event = events[section];
NSString *dato = [[event.time objectAtIndex:0] startTime];
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
formatter.dateFormat = @"yyyy-MM-dd'T'HH:mm:ss.SSSzzz";
NSDate *gmtDate = [formatter dateFromString: dato];
formatter.dateFormat = @"dd-MM-yyyy";
dato = [formatter stringFromDate:gmtDate];
return dato;
}
-(UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
CalendarModel* event = events[indexPath.row];
NSString *dato = [[event.time objectAtIndex:0] startTime];
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
formatter.dateFormat = @"yyyy-MM-dd'T'HH:mm:ss.SSSzzz";
NSDate *gmtDate = [formatter dateFromString: dato];
formatter.dateFormat = @"HH:mm";
dato = [formatter stringFromDate:gmtDate];
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"SportCell" forIndexPath:indexPath];
cell.textLabel.text = [NSString stringWithFormat:@"%@",
event.title
];
cell.detailTextLabel.text = dato;
return cell;
}
编辑了上面的代码。它现在有效,但它每次都显示相同的游戏。好像它总是需要第一个,并显示出来。我认为问题在于
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return 1;
}
方法
答案 0 :(得分:1)
您的json数据在http://json.parser.online.fr/
中给出错误试试这个:
- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section {
CalendarModel* event = events[section]; // i think CalendarModel is a class in which you store yor json data one by one.
return event.Title; // In event class you have to save title;
//return [[events objectAtIndex: section] objectForKey: @"Title"];
}
答案 1 :(得分:0)
我认为你在属性标题中使用了大写字母。 在数组中,它只是标题&#39;
尝试以下代码行。
- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section {
return [[events objectAtIndex: section] objectForKey: @"title"];
}
CalendarModel
班级 您实施的一个主要问题是,您的标题将始终显示为标题的第一个标题,因为您只有1个部分
如果我是仪式,你需要像这样实施
#pragma mark - table methods
-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
return events.count;
}
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return 1;
}
- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section {
return [[events objectAtIndex: section] objectForKey: @"title"];
}
-(UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
CalendarModel* event = events[indexPath.section];
NSString *dato = [[event.time objectAtIndex:0] startTime];
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
formatter.dateFormat = @"yyyy-MM-dd'T'HH:mm:ss.SSSzzz";
//formatter.timeZone = [NSTimeZone timeZoneForSecondsFromGMT:3600];
//formatter.calendar = [[NSCalendar alloc]initWithCalendarIdentifier:NSGregorianCalendar];
//formatter.locale = [[NSLocale alloc]initWithLocaleIdentifier:@"en_GB"];
NSDate *gmtDate = [formatter dateFromString: dato];
formatter.dateFormat = @"dd-MM-yyyy HH:mm";
dato = [formatter stringFromDate:gmtDate];
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"SportCell" forIndexPath:indexPath];
cell.textLabel.text = [NSString stringWithFormat:@"%@",
event.title
];
cell.detailTextLabel.text = dato;
return cell;
}