Selector在numberOfRowsInSection中调用,但不在cellForRowAtIndexPath中调用

时间:2010-11-22 23:45:11

标签: iphone objective-c uitableview

我有这个代码来填充UITableView,返回numberOfRowsInSection的工作正常。不调用在cellForRowAtIndexPath部分中使用appDelegate的选择器。这有什么不对吗?

   - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    // Return the number of rows in the section.
 VIP_GeburtstagAppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
 [appDelegate getEntriesForDate:section];

 return appDelegate.namesForDay.count;

}


// Customize the appearance of table view cells.
- (UITableViewCell *)tableView:(UITableView *)theTableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    static NSString *CellIdentifier = @"Cell";

    VIP_GeburtstagAppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];

 [appDelegate getEntriesForDate:indexPath.section];

3 个答案:

答案 0 :(得分:6)

调用方法。选择器是(或多或少)方法的名称;他们没有被召唤。

如果-tableView:numberOfRowsInSection:返回0,则表示没有单元格,因此不会调用-tableView:cellForRowAtIndexPath:

答案 1 :(得分:1)

也许该部分表尚未显示,而UITableView正在懒散加载。如果是这样,向上滚动以便这些单元格可见,并且应该调用您的委托。

答案 2 :(得分:0)

tableView:numberOfRowsInSection:返回366或类似,因此tableView:cellForRowAtIndexPath:被调用。当我将cell.textLabel.text交换到@“John Doe”时,它的工作正常。