gpt4 book ai didi

ios - NSFetchedResultsController 不诉诸内容更改

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:14:34 25 4
gpt4 key购买 nike

我试图找出为什么我的 NSFetchedResultsController 实例在内容更改时似乎忽略了它的 sortDescriptor。所有委托(delegate)方法等都被调用,但是当我正在排序的相关属性发生变化时,我只收到一个 NSFetchedResultsChangeUpdate 更改通知,并且没有发生内容求助:

下面是我如何创建 NSFetchedResultsController 实例:

NSManagedObjectContext *context = [UIApplication managedObjectContext];

_fetchRequest = [[NSFetchRequest alloc] initWithEntityName:NSStringFromClass([MCCDBook class])];
_fetchRequest.sortDescriptors = @[
[NSSortDescriptor sortDescriptorWithKey:@"lastOpened" ascending:true selector:@selector(compare:)]
];
_fetchRequest.entity = [NSEntityDescription entityForName:_fetchRequest.entityName inManagedObjectContext:context];

_fetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:_fetchRequest managedObjectContext:context sectionNameKeyPath:@"sectionTitle" cacheName:nil];
_fetchedResultsController.delegate = self;

下面是进行排序的属性:

enter image description here

这是我更新上述属性的方式:

entity.lastOpened = [NSDate date];

[entity.managedObjectContext save:nil];

有什么想法吗?这个让我很困惑。

编辑:

我做了更多的测试,看来问题是这样的:NSFetchedResultsController 只是费心去求助于原始的 sortDescriptors。如果我在 NSFetchedResultsController 初始化之后更改了请求的 sortDescriptors 或者它的 predicate (我正在调用 performFetch:),调用了我的委托(delegate)方法,但 fetchedObjects 不会自行求助。

最佳答案

根据评论,如果您即时更改获取请求的谓词或排序描述符,FRC 似乎会感到困惑。如果您需要改变它们,则使用新的谓词和排序描述符实例化一个全新的 FRC。

关于ios - NSFetchedResultsController 不诉诸内容更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31104173/

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