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 的实例
我在表视图中有一个 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 的实例