所以,我正在使用RestKit访问Web服务并从那里检索数据。 到目前为止,我有两个视图,检索数据的部分很好,我得到了我需要的100个对象,将它们保存到一个名为“歌曲”的数组中。
这是didLoadObjects:
- (void)objectLoader:(RKObjectLoader*)objectLoader didLoadObjects:(NSArray*)objects {
NSLog(@" Reached didLoadObjects: %d", [objects count]);
self.songs = objects;
NSLog(@"%@",self.songs);
}
好的,我有两个观点,问题当然是第二个观点。我正在使用Storyboard。我给tableView单元格一个名为“TopListCellIdentifier”的标识符。
所以,我得到了这些对象,其中所有100个都在命令行中“打印”了,但是当我尝试从cellForRowAtIndexPath中的数组中访问数据时,问题就出现了,这是因为我有必要这样做自定义tableViewCell显示我需要的信息(儿子,艺术家,封面,类似的东西)。所以,当我启动应用程序时,第一个视图很好,但第二个视图有100个单元格,但没有信息。这是cellForRowAtIndexPath代码。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *TopListCellIdentifier = @"TopListCellIdentifier";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:TopListCellIdentifier];
// Loading the Cover Images in the Background
// Cover Image: Tag 1
[((HJManagedImageV*)[cell viewWithTag:1]) clear];
HJManagedImageV* thumbImage = ((HJManagedImageV*)[cell viewWithTag:1]);
NSString *thumbUrl = [[self.songs objectAtIndex:[indexPath row]] thumbnail];
thumbImage.url = [NSURL URLWithString:thumbUrl];
[[ImageHandler sharedHandler].imgManager manage:thumbImage];
//Song and Artist: Tag 2 and 3
((UILabel*)[cell viewWithTag:2]).text = [[self.songs objectAtIndex:[indexPath row]] title];
((UILabel*)[cell viewWithTag:3]).text = [[self.songs objectAtIndex:[indexPath row]] artist];
//Arrow Up/Down/Same: Tag 4
//TODO
//Position Number: Tag 5
((UILabel*)[cell viewWithTag:5]).text = [NSString stringWithFormat:@"%d.", [indexPath row]+1];
return cell;
}
我试过将调试器放在cellRow(...)的第一行,但是程序没有进入那里。我觉得我忘记了一些非常简单的事情,但我似乎无法弄清楚是什么。
有人可以帮助我吗?
答案 0 :(得分:0)
你永远不会开始新的细胞。您需要添加如下行:
if (nil == cell)
cell = [[UITalbeViewCell alloc] init...
致电后
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:TopListCellIdentifier];