iPhone SDK:为什么didSelectRowAtIndexPath不被解雇?
我有一张桌子上的视图。当应用程序启动时,它会加载前5个可见单元。这按预期工作。iPhone SDK:为什么didSelectRowAtIndexPath不被解雇?
我的问题是,当我尝试在表格中向下滚动时,应用程序崩溃并出现此错误。
我发现的是didSelectRowAtIndexPath没有被调用。 AFAIK,我需要做的就是订阅代表。但我必须错过什么?
@interface LandingRetailersViewController : TableSectionHeaderViewController<UITableViewDataSource, UITableViewDelegate, UITabBarDelegate> {
任何帮助表示赞赏。
2010-06-06 12:25:42.547 的iPhoneOS [18238:207] * - [NSCFString 的tableView:的cellForRowAtIndexPath:]: 无法识别的选择发送到实例 0x451a980 2010-06-06 12: 25:42.549 的iPhoneOS [18238:207] *终止 应用由于未捕获的异常 'NSInvalidArgumentException' 的,原因: '*** - [NSCFString 的tableView:的cellForRowAtIndexPath:]: 无法识别的选择发送到实例 0x451a980'
这是我的代码来加载单元格。
UITableViewCell * cell = nil;
NSInteger index = [indexPath indexAtPosition:1];
NSLog(@"WHAT IS INDEX %i", indexPath);
RoundedGradientTableViewCell *retailerCell = (RoundedGradientTableViewCell *)[tb dequeueReusableCellWithIdentifier:@"RET"];
if(!retailerCell){
retailerCell = [[[RoundedGradientTableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:@"RET"] autorelease];
}
[retailerCell setArcSize:5.0];
[retailerCell setStrokeSize:1.0];
[retailerCell setStrokeColor:[UIColor clearColor]];
[retailerCell setBackgroundFillColor:[UIColor clearColor]];
[retailerCell setBackgroundColor:[UIColor clearColor]];
Retailer *retailer = [self retailerAtIndex:index];
if(retailer){
[[retailerCell textLabel] setText:[retailer name]];
if([retailer hasImage]){
[[retailerCell contentImageView] setImage:[retailer image]];
}
} else {
[[retailerCell textLabel] setText:@"No title"];
}
cell = retailerCell;
[cell setSelectionStyle:UITableViewCellSelectionStyleNone];
NSLog(@"retailer: %@ ", [retailer name]);
NSLog(@"log: %i ", index);
return cell;
所以,如果这是你的接口声明:
@interface LandingRetailersViewController :
TableSectionHeaderViewController <UITableViewDataSource,
UITableViewDelegate, UITabBarDelegate>
你都可以从下面这行代码抛出一个异常:
-[NSCFString tableView:cellForRowAtIndexPath:]
事情的事实是,你的tableView的dataSource
属性被设置为一个字符串对象。您不能将cellForRowAtIndexPath
消息发送到字符串对象。我的第一个问题是,什么是TableSectionHeaderViewController
?这就是你的对象继承的东西,但那不是我熟悉的东西。一般来说,我会建议将来提供更多的代码。
无论如何,底线是你的tableView的dataSource
属性被设置为一个字符串对象。查看设置的位置以及设置的对象。如果你提供更多的代码,我可以提供更多的帮助,但是我认为你可以从这里获得。 :)