0

我正在制作具有表格视图的应用程序,但我无法在表格视图中添加数据

我在 .h 文件中名为 NewTable 的 .xip 文件中有表格视图,这是我在 .m 文件中使用它的代码(listData 它是数组):

- (void)viewDidLoad{
    [super viewDidLoad];
    [self TestTable];
}

-(void)TestTable{
    NSArray *array = [[NSArray alloc] initWithObjects:@"Vishal",@"Vinod",@"Sachin",@"Nilesh",@"Balu",@"Amrita",
                      @"susho",@"Akash",@"Nil",@"Lop",@"Koi",@"Absoulate",@"Dwalin",
                      @"Fili",@"Kili",@"Oin",@"Gloin",@"Bifur",@"Bofur",@"Bombur",nil];

    self.listData = array;
    [array release];
    self.listData= array;

    [self.NewTable reloadData];
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { 
    return [self.listData count];
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    static NSString *SimpleTableIdentifier = @"SimpleTableIdentifier";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:
                             SimpleTableIdentifier];
    if(cell == nil){
        cell = [[UITableViewCell alloc] autorelease];
    }
    NSUInteger row = [indexPath row];
    cell.textLabel.text = [listData objectAtIndex:row];
    return cell;
}

{{{{{{{{{{{当我添加nslog时cellForRowAtIndexPath它不会在consol中打印任何东西!}}}}}}}}}} {{{{{{{{{{{当我添加nslogcellForRowAtIndexPath不会在 consol 中打印任何内容!}}}}}}}}}} {{{{{{{{{{{另外,当我添加 nslog 时,cellForRowAtIndexPath它不会在 consol 中打印任何内容!}}}}}} }}}}}

4

2 回答 2

0

这是我通常看到的用于初始化数据的内容。

-(void)viewDidLoad {
    self.listData = [[NSMutableArray alloc] initWithObjects:@"Vishal",@"Vinod",...,nil];
    [super viewDidLoad];
}

虽然,我认为您的问题是分配给不再保留的数组。

于 2012-08-08T19:33:03.810 回答
0

如果你正在使用UIViewController而不是UITableViewController你需要确保你的 viewController 符合UITableViewDataSourceUITableViewDelegate

@interface MyViewController : UIViewController <UITableViewDataSource, UITableViewDelegate>  

接下来,您需要将这个视图控制器实际设置为 tableView 的 dataSource 和委托。
您可以通过将鼠标从 tableView 拖动到文件所有者(即 MyViewController)来使用 IB 执行此操作,
或者在代码中执行此操作:

- (void)viewDidLoad
{
    [super viewDidLoad];

    self.NewTable.dataSource = self;
    self.NewTable.delegate = self;
}

同样在cellForRowAtIndexPath,换行

cell = [[UITableViewCell alloc] autorelease];  

cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:SimpleTableIdentifier] autorelease];
于 2012-08-08T19:34:15.227 回答