tra*_*cy 9 core-data objective-c ios
我有一个非常偶发的错误,其中包含一个包含fetchLimit和fetchOffset的Core Data查询.很长一段时间(我看到它发生过一次,就像另一个测试人员一样),fetchOffset似乎被忽略了.查询如下所示:
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];
}
Run Code Online (Sandbox Code Playgroud)
这几乎总是根据需要返回第501个对象,但是在它破坏它的两个场合返回第一个对象.
除非数据库中有> 500行,否则永远不会运行查询.我正在使用iOS5.managedObjectContext具有mainQueueConcurrencyType.
它似乎与此问题中报告的行为相同:从核心数据请求中分页结果,从未解决(或至少不在列表上).在这种情况下,fetchOffset似乎被忽略或基于数据模型受到尊重正在接受测试.
我可能会在没有fetchOffset的情况下重写查询,以防万一是问题所在,因为性能应该不是问题.但是我想知道是否有人想到这里的bug可能在哪里.
Cas*_*ser 13
今天早上遇到类似的问题并注意到我的NSManagedObjectContext是否有未保存的更改,fetchOffset可能因任何原因被忽略.保存上下文后,正确解释了fetchOffset.
| 归档时间: |
|
| 查看次数: |
2225 次 |
| 最近记录: |