UITableView
'a yüklediğim UIManagedDocument kullanılarak oluşturulan bir Çekirdek Veri veritabanım var ve bu verilerin belirli bir grafiğini grafiğe çiziyorum. Veritabanına bir nesne eklediğimde veya veritabanından bir nesneyi sildiğimde ve daha sonra verileri getirdiğimde, istekte bir sıralama tanımlamam olsa bile NSFetchRequest
döndürdüğüm dizinin sıralanmadığını buldum. İlginç olan kısım, eğer birkaç saniye beklediğimde veriyi getirip/kaydettiğimde, şimdi sıralamaya giriyor olmasıdır. Sanırım yanlış bir şey yapmalıyım. Veritabanı Değişiminin tamamlandığını bilmek için Çekirdek Veri'den kullanmam gereken bir tür geri arama var mı? Bu garip çünkü tüm veriler her zaman veritabanında, sadece sıralanmıyor. Onunla çok deneyimli değilim, emin değilim.Çekirdek Verisi NSFetchRequest, nesne silme ve yeniden veriyi silme işleminden sonra sıralanmamış dizi döndürür
İşte benim getirme isteğinden kod:
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];
İçeriği silme ve yeniden getirme arasında kaydetmeyi deneyin. – Costique
Benim commitEditingStyle: yöntemindeki silme çağrısından hemen sonra kaydediyorum. Veritabanına bir nesne eklediğimde ve çok hızlı bir şekilde çizip grafiğini çizersem, aynı sorunun sıralanmadığı yerde olduğunu fark ettim. – Jamie
Yeniden getirirken "NSFetchRequest" nesnesini yeniden kullanıyor musunuz? Bir önbelleğe alma sorunu gibi görünüyor. – Costique