UITableView单元格空白

时间:2011-04-27 18:22:32

标签: objective-c ios ios4

我正在尝试在意外删除我的.m文件后恢复。有没有人看到我做错了什么导致我的细胞全部呈现空白?

·H

#import <UIKit/UIKit.h>
@interface FirstViewController : UITableViewController <UITableViewDelegate, UITableViewDataSource> {
}
@end

的.m

#import "FirstViewController.h"
#import "Shared.h"
#import "Message.h"

@implementation FirstViewController

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

    static NSString *CellIdentifier = @"CellIdentifier";

    // Dequeue or create a cell of the appropriate type.
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
    }
        cell.textLabel.text = @"Foo"; 
    return cell;
}

-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    NSLog([NSString stringWithFormat:@"Number of rows %i", [[Shared sharedInstance].messages count]]);
    //this comes back as 10
    return [[Shared sharedInstance].messages count];
}

更新

我把它归结为一个奇怪的问题。在下面,我注销为10,但如果我返回i,行显示为空白。如果我返回10,如下所示,它可以工作。

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    #warning Incomplete method implementation.
    // Return the number of rows in the section.
    NSInteger i = [[Shared sharedInstance].messages count];
    NSLog([NSString stringWithFormat:@"Number of rows %i", i]);
    return 10;
}

另一个更新:

好的,我已经离得更近了。看来虽然在我使用调试器时调用了reloaddata,但它似乎没有正确地重新加载。这就是为什么硬编码的数字如果我为每一行使用硬编码的样本字符串。第一次加载时,行数将为零,并且由于reloaddata不起作用,下次加载时它不会更新为10行。
    如果有人想知道我是否已连接到委托和数据源。

screen capture

1 个答案:

答案 0 :(得分:0)

如果您使用的是XIB,请确保已建立连接,并确保它们指向UITableView

此外,当您使用UITableViewController时,无需使用<..Delegate,..Datasource>协议。