C&C++   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了objective-c – Core Data查询中fetchLimit和fetchOffset的可能问题大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个非常零星的@L_450_2@,包含fetchLimit和fetchOffset的核心数据@L_673_3@.一段时间(我已经看到它发生一次,和另一个测试人员一样),fetchOffset似乎被忽略.@L_673_3@如下所示:
NSFetchrequest *fetch = [[NSFetchrequest alloc] initWithEntityName:@"MyEntity"];
NSSortDescriptor *dateDescriptor = [[NSSortDescriptor alloc] initWithKey:@"timestamp" ascending:NO];
NSArray *sortDescriptors = [NSArray arrayWithObject:dateDescriptor];
[fetch setSortDescriptors:sortDescriptors];

fetch.fetchOffset = 500;
fetch.fetchLimit = 1;

NSError *error = nil;
NSArray *objects = [self.managedObjectContext executeFetchrequest:fetch error:&error];
if (objects.count) {
    MyEntity *objectAtLimit = [objects objectATindex:0];
}

这几乎总是按照需要返回第501个对象,但是在它打破的两个场合返回第一个对象.

@L_673_3@从不运行,除非数据库中有> 500行.我正在使用iOS5. managedObjectContext有@L_526_1@mainQueueConcurrencyType.

这似乎与这个问题中报道的行为是一样的:Paging results from Core Data requests,它从未被解决(或者至少不在列表中).在这种情况下,fetchOffset似乎被忽略或被尊重,基于被测试的数据模型.

我可能会重写该@L_673_3@而不用fetchOffset,以防万一这是问题,因为性能不应该是一个问题.但是我想知道有没有人想到这个bug可能在哪里.

解决方法

今天早上遇到类似的问题,并注意到我的NsmanagedObjectContext是否有未保存的更改,fetchOffset可能因为任何原因而被忽略.保存上下文后,fetchOffset被正确解释.

大佬总结

以上是大佬教程为你收集整理的objective-c – Core Data查询中fetchLimit和fetchOffset的可能问题全部内容,希望文章能够帮你解决objective-c – Core Data查询中fetchLimit和fetchOffset的可能问题所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。