gpt4 book ai didi

ios - 我的 FetchedResultsController 做错了什么,它给了我设置其委托(delegate)的警告?

转载 作者:行者123 更新时间:2023-11-29 04:01:10 25 4
gpt4 key购买 nike

我有以下代码:

- (NSFetchedResultsController *)fetchedResultsController {
if (!_fetchedResultsController) {
NSManagedObjectContext *context = [(AppDelegate *)[[UIApplication sharedApplication] delegate] managedObjectContext];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"ArticleInfo" inManagedObjectContext:context];
NSFetchRequest *request = [[NSFetchRequest alloc] init];
request.entity = entity;

NSSortDescriptor *descriptor = [[NSSortDescriptor alloc] initWithKey:@"timeStamp" ascending:NO];
request.sortDescriptors = [NSArray arrayWithObject:descriptor];

request.fetchBatchSize = 20;

NSFetchedResultsController *fetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:request managedObjectContext:context sectionNameKeyPath:nil cacheName:@"Root"];
_fetchedResultsController = fetchedResultsController;
_fetchedResultsController.delegate = self;
}

return _fetchedResultsController;
}

它报告此错误:

Assigning to 'id' from incompatible type 'RootViewController *const __strong'

我究竟做错了什么导致了这种情况?

最佳答案

您需要让编译器知道您的类符合 NSFetchedResultsControllerDelegate 协议(protocol)。

您可以通过将其添加到 .h 文件中来实现此目的

@interface RootViewController : UITableViewController <NSFetchedResultsControllerDelegate>

或者可能更推荐将其添加到类扩展中。所以在你的 .m 文件中

@interface RootViewController () <NSFetchedResultsControllerDelegate>

为什么这可以被认为更好一点的原因是它更好的信息隐藏 - 没有其他类需要知道 RootViewController 符合 NSFetchedResultsControllerDelegate 协议(protocol),因此为什么要公开可见?

关于ios - 我的 FetchedResultsController 做错了什么,它给了我设置其委托(delegate)的警告?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15840442/

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