【发布时间】:2011-09-15 23:19:34
【问题描述】:
我的 iphone 程序有一个带有 tableview 的 Xib 视图。我将 UITableViewController 子类化,并试图让 xib 中的 UITableView 向它发送消息。当我触摸 tableview 行时程序崩溃。
它正确调用:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{}
并且正确分配了 cell.textLabel.text。
接口sn-p:
@interface PlayersDrawsViewController : UIViewController {
UITableView *uitableView;
PlayersToDrawTableViewController *pvc;
}
@property (nonatomic, retain) IBOutlet UITableView *uitableView;
@property (nonatomic, retain) IBOutlet PlayersToDrawTableViewController *pvc;
实现sn-p:
- (void)viewDidLoad
{
// Setup TableView
if (pvc == nil) {
pvc = [[PlayersToDrawTableViewController alloc]
initWithNibName:@"PlayersToDrawTableViewController" bundle:nil];
/* works great, loads rows */
self.uitableView.dataSource = pvc.tableView.dataSource;
/* EXC_BAD_ACCESS when didSelectRowAtIndexPath is called */
//self.tableView.delegate = pvc;
}
}
我的 UITableViewController 子类:
@interface PlayersToDrawTableViewController : UITableViewController
<UITableViewDelegate>
{
}
@end
如何让代理连接,以免发送消息时崩溃?
我已经阅读了这些主题,要么我很密集,要么他们没有回答我的问题:
UITableView issue when using separate delegate/dataSource
UITableView superClass for delegate?
Getting “EXC_BAD_ACCESS” when accessing instance variable from within UITableView delegate method
【问题讨论】:
-
发布完整的错误消息可能会有所帮助。此外,将 UITableViewController 类型的实例变量作为 another 表的数据源看起来很可疑。
-
除了堆栈转储外,没有错误消息。我在 didSelectRowAtIndexPath 方法中设置了一个断点,它到达了那里。但是,错误访问发生在:0x00fd009b mov 0x8(%edx),%edi
-
另外,我正在使用 Interface Builder 来设计视图。我已将 UITableView 放入 UIView。 UITableViewController (pvc) 在 viewDidLoad 期间从 sqlite3 源获取数据。我愿意接受将 UITableView 填充为 UIView 组件的建议。
-
如果您在
didSelectRowAtIndexPath中得到EXEC_BAD_ACCESS,您应该在此处添加该代码。 -
什么都不做,只是 NSLog(@"%s", FUNCTION);
标签: iphone uitableview delegates