gpt4 book ai didi

iphone - 从 prepareForSegue :sender: 设置 UITableView 委托(delegate)和数据源时出错

转载 作者:行者123 更新时间:2023-11-28 23:08:41 25 4
gpt4 key购买 nike

我正在使用 prepareForSeque:sender: 在将 UITableView 推送到导航堆栈之前动态设置它的委托(delegate)和数据源属性。永远不会调用委托(delegate)方法,Xcode 会返回以下错误。不幸的是,Xcode 并没有给我太多的堆栈跟踪,唯一指示哪个对象被用作数据源的是 UIViewControllerWrapperView 的实例,我认为它可能是由 Storyboard库生成的.有任何想法吗?这不可能吗?

错误:

* Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UIViewControllerWrapperView tableView:numberOfRowsInSection:]: unrecognized selector sent to instance 0x7f49370'

这是我的代码:

/**
* Handle the various segues
*
* @author Jesse Bunch
**/
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {

// Get the selected cell
NSIndexPath *selectedIndexPath = self.tableView.indexPathForSelectedRow;
ReportTableViewCell *cell = (ReportTableViewCell *)[self.tableView cellForRowAtIndexPath:selectedIndexPath];

// Instantiate the selected report's context
// TODO: Insert error handling here
Class reportClass = NSClassFromString([cell.reportInfo objectForKey:@"ReportClass"]);
BaseReportContext *reportContext = [[reportClass alloc] init];
reportContext.delegate = self;

// Get the destination options controller
ReportOptionsTableViewController *optionsController = (ReportOptionsTableViewController *)segue.destinationViewController;

// Let the report context be the delegate of the options controller
// The report context should contain all the information needed
// to display the necessary report customization options
optionsController.tableView.delegate = reportContext;
optionsController.tableView.dataSource = reportContext;


}

最佳答案

然后您会尝试以更可靠的方式保留委托(delegate)/ds 对象(比如将其保留在 var/property 数组/字典中)吗?我相信委托(delegate)不应该被对象保留,可能会发生所有 reportContext 都被释放的情况。至少日志与内存管理问题的情况完全吻合,我相信你自己也注意到了。

关于iphone - 从 prepareForSegue :sender: 设置 UITableView 委托(delegate)和数据源时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8782404/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com