在UITableView中调用reloadData似乎不会填充我的表格单元格

时间:2013-02-18 16:09:33

标签: objective-c

我有一个实现UITableView的视图。我有一个名为setData的方法,它允许我传入一个NSMutableArray。一旦我这样做,我调用[self reloadData]。我的理解是,一旦调用了所有检查数组并设置表格单元格的函数就应该运行。

我已经放了一些日志语句,并尝试设置断点,根本没有调用任何代码。想知道我做错了什么。

这是我的.m代码。

#import "JornadaKMLList.h"

@implementation JornadaKMLList

- (id)initWithFrame:(CGRect)frame
{
    self = [super initWithFrame:frame];
    if (self) {
        // Initialization code
    }
    return self;
}

-(void)setData:(NSMutableArray*)value
{
    collection = value;

    [self reloadData];
}

//table view stuff

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
    NSLog(@"this is line 33");
    return 1;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    NSLog(@"this is line 39");
    return [collection count];
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    NSLog(@"this is line 43");
    static NSString *CellIdentifier = @"Cell";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

    if (cell == nil)
    {

        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] ;

    }

    // Configure the cell...
    KmlVO *vo = [collection objectAtIndex:indexPath.row];
    cell.textLabel.text = vo->title;


    return cell;

}

@end

这是我的.h代码

#import <UIKit/UIKit.h>
#import "JornadaKMLList.h"
#import "KmlVO.h"
@interface JornadaKMLList : UITableView <UITableViewDelegate,UITableViewDataSource>
{
    NSMutableArray *collection;
}
-(void)setData:(NSMutableArray*)value;
@end

1 个答案:

答案 0 :(得分:1)

您需要将datasource的{​​{1}}和delegate属性设置为您正在使用的UITableView子类。

换句话说,在UITableView课程的某个地方,设置JornadaKMLListself.datasource = self