IOS/XCODE: 在其他 Class 中调用 NSFetchedResultsController 方法

IOS/XCODE: Calling NSFetchedResultsController Method in Other Class

我在表视图中有一个 NSFetchedResultsController,我试图从另一个控制器调用它,但出现错误。

我将 tableVC 导入到 otherVC,但得到了一个 "No known class method for selector "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];

感谢您的任何建议。

"No known class method for selector" 表示您正在调用 class 方法,而不是实例方法。

Class 方法是用前导 + 号定义的,而 tableVC.h 中的 fetchedResultsController 是用前导 - 号定义的,表明它是一个实例方法。

解决方案是将 tableVC.h 中的 fetchedResultsController 的方法签名更改为 class 方法,或者将 otherVC.m 中的调用更改为使用 tableVC 的实例而不是class 本身。

根据您的代码示例,fetchedResultsController 方法似乎被正确定义为实例方法,因此您需要在 otherVC class.

中使用 tableVC 的实例