我在tableview中有一个NSFetchedResultsController,我试图从另一个控制器调用它但是收到错误。
我将tableVC导入了otherVC但是得到了“没有已知的选择器类方法”fetchedResultsController“。有人能发现我做错了什么吗?谢谢。
code in tableVC.h
-(NSFetchedResultsController *)fetchedResultsController;
tableVC.m
-(NSFetchedResultsController *)fetchedResultsController {
if (_fetchedResultsController==nil){
NSFetchRequest *fetchRequest= [[NSFetchRequest alloc] init];
...
return _fetchedResultsController;
}
otherVC.m
#import "tableVC.h"
[tableVC fetchedResultsController];
感谢您的任何建议。
答案 0 :(得分:2)
“没有已知的选择器类方法”表示您正在调用类方法,而不是实例方法。
使用前导+符号定义类方法,并使用前导符号定义tableVC.h中的fetchedResultsController,表明它是实例方法。
解决方案是将tableVC.h中fetchedResultsController的方法签名更改为类方法,或者更改otherVC.m中的调用以使用tableVC的实例而不是类本身。
根据您的代码示例,看起来fetchedResultsController方法被正确定义为实例方法,因此您需要在otherVC类中使用tableVC的实例。