我有一个UITableView,我正在使用NSMutable数组中的对象填充。由于某种原因,表视图始终加载数组 - 1对象。如果[array count] == 3,它只加载2个对象(单元格)
这是我的代码。谁能告诉我为什么tableview总是跳过数组中的第一个或最后一个对象? (我不知道哪个)
- (void)viewDidLoad
{
[super viewDidLoad];
// singleton class containing NSMutable array
sharedEventData = [EventData sharedDataInstance];
self.navigationController.delegate = self;
// if this returns 10 the tableview always loads 9 objects. count -1
NSLog(@"eventList count: %u", [sharedEventData.listOfEvents count]);
[self.tableView reloadData];
}
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
// Return the number of sections.
return 1;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
// Return the number of rows in the section.
// sharedEventData.listOfEvents is my NSMutableArray
return [sharedEventData.listOfEvents count];
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle
reuseIdentifier:CellIdentifier];
}
cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
EKEvent *currentEvent = [sharedEventData.listOfEvents objectAtIndex:indexPath.row];
NSDate *date = [currentEvent startDate];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateStyle:NSDateFormatterMediumStyle];
[dateFormatter setTimeStyle:NSDateFormatterNoStyle];
NSString *dateString = [dateFormatter stringFromDate:date];
// Get the event at the row selected and display it's title
cell.textLabel.text = [[sharedEventData.listOfEvents objectAtIndex:indexPath.row] title];
cell.detailTextLabel.text = dateString;
//NSLog(@"date string: %@", dateString);
return cell;
}
答案 0 :(得分:0)
首先在didload方法中给出一些静态数据然后检查它是否返回正确答案然后检入numberOfRowsInSection返回值是什么。我认为这是工作,你发现你的问题和didload中的一件事你删除reloadtable方法因为didload调用第一次然后表也重新加载