核心数据NSFetchRequest在删除对象和重新获取数据后返回未排序的数组

Jam*_*mie 6 iphone core-data nsfetchrequest ios

我有一个使用UIManagedDocument构建的Core Data数据库,我将其加载到a中,UITableView并在图表上绘制该数据的某些点.我发现当我向数据库添加一个对象或从数据库中删除一个对象然后获取数据时NSFetchRequest,即使我在请求中有一个排序描述符,返回的数组也没有排序.有趣的是,如果我等待几秒钟然后获取/重新获取数据,它现在会重新排序.我想我一定是做错了.我是否应该从Core Data中使用某种回调来了解数据库更改是否已完成?这很奇怪,因为所有数据总是在数据库中,只是没有排序.我对它没有超级经验,所以我不确定.

这是我的获取请求中的代码:

NSFetchRequest *request = [[NSFetchRequest alloc] initWithEntityName:@"FuelPurchase"];
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"dateTimeStamp" ascending:YES];
request.sortDescriptors = [NSArray arrayWithObject:sortDescriptor];

NSError *error = nil;
[self.fuelPurchaseDatabase.managedObjectContext executeFetchRequest:request error:&error];
Run Code Online (Sandbox Code Playgroud)

Hal*_*lex 0

你使用controllerDidChangeContent:回调吗?

也许可以使用它来更新您的视图,而不是在保存上下文后按程序执行此操作。