Ash
Ash

Reputation: 9351

cellForRowAtIndexPath never called

I've subclassed UITableView to create my own data retrieval system, as described in Apple's own Core Data tutorial, but I've hit a problem. The substitute cellForRowAtIndexPath method in my custom table never gets called, not even when I call reloadData or setNeedsDisplay. I've been hunting around for solutions to this one, and it seems that this error can be caused by a multitude of problems. However I've checked all the ones I can find and cannot see anything missing. Can anyone tell me what's likely to be wrong?

P.S. I know the UITableViewDataSource protocol needs to be in triangular brackets, but I couldn't find out how to show triangular brackets on the page without deleting the text between them.

H-File

@interface DataTable : UITableView <UITableViewDataSource> {
    NSMutableArray *list;
}

@property (nonatomic, retain) NSMutableArray *list;

@end


M-File
@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

Upvotes: 1

Views: 1615

Answers (1)

Ash
Ash

Reputation: 9351

Never mind, think I've found it. Basically, you can't set the datasource delegate in that part of the program. Need to do it from its owning view controller.

Upvotes: 2

Related Questions