Я создал подкласс UITableView для создания собственной системы поиска данных, как описано в учебном руководстве по основным данным Apple, но столкнулся с проблемой. Заменяющий метод cellForRowAtIndexPath в моей пользовательской таблице никогда не вызывается, даже когда я вызываю reloadData или setNeedsDisplay. Я искал решения для этого, и кажется, что эта ошибка может быть вызвана множеством проблем. Однако я проверил все те, которые я могу найти, и не вижу ничего пропавшего. Может кто-нибудь сказать мне, что может быть не так?
PS Я знаю, что протокол UITableViewDataSource должен быть в треугольных скобках, но я не мог найти, как показать треугольные скобки на странице, не удаляя текст между ними.
H-файл
@interface DataTable : UITableView <UITableViewDataSource> {
NSMutableArray *list;
}
@property (nonatomic, retain) NSMutableArray *list;
@end
@implementation DataTable
@synthesize list;
-(id) initWithFrame:(CGRect)rect Style:(UITableViewStyle)style{
if (self = [super initWithFrame:rect style:style]){
list = [[NSMutableArray alloc] init];
self.dataSource = self;
}
return self;
}
(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
return [list count];
}
(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
static NSString *cellID = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellID];
if (cell == nil){
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle
reuseIdentifier:cellID] autorelease];
}
CH *this = (CH *)[list objectAtIndex:indexPath.row];
cell.detailTextLabel.text = [this.clusterName mutableCopy];
return cell;
}
-(void) dealloc{
[list release];
[super dealloc];
}
@end