У меня есть база данных Core Data, созданная с использованием UIManagedDocument, который я загружаю в 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];