我有一个实现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
答案 0 :(得分:1)
您需要将datasource
的{{1}}和delegate
属性设置为您正在使用的UITableView
子类。
换句话说,在UITableView
课程的某个地方,设置JornadaKMLList
和self.datasource = self
。