0

我有一个实现 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
4

1 回答 1

1

您需要将datasourcedelegate的属性设置为您正在使用UITableView的子类。UITableView

换句话说,在你JornadaKMLList班上的某个地方,设置self.datasource = selfself.delegate = self.

于 2013-02-18T16:41:00.187 回答