【问题标题】:Passing objects to tableview controller does not work but view controller works将对象传递给 tableview 控制器不起作用,但视图控制器工作
【发布时间】:2014-02-05 17:04:02
【问题描述】:

我是 iOS 开发和核心数据 fetchresultscontroller 的新手。我在将对象从 tableview 传递/segue 到另一个 tableview 时遇到问题。

下面是我的代码:

   if([[segue identifier]isEqualToString:@"expenses"]){
        ExpensesTableViewController *exp = (ExpensesTableViewController*)[segue destinationViewController];
        NSIndexPath *path = [[self tableView]indexPathForSelectedRow];
        Budget *b = [_fetch objectAtIndexPath:path];
        [exp setCurrentBudget:b];
    }

当点击其中一个 tableview 单元格时,我期待将一个对象发送到另一个 segue tableview。但是我收到此错误消息:

"Unknown class ExpenseInBudgetTableViewController in Interface Builder file."...
"[UITableViewController setCurrentBudget:]: unrecognized selector sent to instance 0x8d74a60"...
"Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UITableViewController setCurrentBudget:]: unrecognized selector sent to instance 0x8d74a60'"

我已经在自定义类字段中正确插入了匹配的类,但我不确定我还应该检查什么。

另外由于某种原因,如果我将一个对象传递给普通的 ViewController,使用相同的代码(但 ViewContoller 类),预期的结果是正确的。

所以,我想知道将对象传递给 tableview 控制器和普通视图控制器是否有很大区别,或者我做错了什么?

非常感谢。

【问题讨论】:

  • 您是否注意到在您的代码中您有 ExpensesTableViewController,而在错误消息中您有 ExpenseInBudgetTableViewController。这里有线索吗?
  • 是的,我实际上是在寻找为什么它说“Interface Builder 文件中的未知类 ExpenseInBudgetTableViewController”。我检查了当前表视图是否导入了第二个表视图,并且在第二个表视图中它具有 currentBudget 属性
  • #import #import "Budget.h" (at)interface ExpensesTableViewController : UITableViewController (at)property (nonatomic, strong)Budget *currentBudget; (在)结束

标签: ios iphone objective-c core-data


【解决方案1】:

看起来你在故事板中犯了一个错误,你还记得设置你要转到的视图控制器的类名吗?

【讨论】:

  • 你说得对,我之前删除了一个名字相似的类名,现在还在自定义类下拉框中徘徊,我没有仔细阅读。非常感谢
猜你喜欢
  • 2011-10-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-04-12
相关资源
最近更新 更多