2012-02-12 20 views
6

Tôi có cơ sở dữ liệu lõi được tạo bằng cách sử dụng tài liệu UIManagedDocument mà tôi tải vào UITableView và cũng vẽ một số điểm nhất định của dữ liệu đó trên biểu đồ. Tôi thấy rằng khi tôi thêm một đối tượng vào cơ sở dữ liệu hoặc xóa một đối tượng khỏi cơ sở dữ liệu và sau đó tìm nạp dữ liệu, mảng trả về NSFetchRequest không được sắp xếp, mặc dù tôi có bộ mô tả sắp xếp trong yêu cầu. Phần thú vị là nếu tôi chờ một vài giây và sau đó lấy/lấy lại dữ liệu, nó bây giờ trở lại được sắp xếp. Tôi nghĩ tôi phải làm điều gì đó sai. Có một số loại gọi lại tôi nên được sử dụng từ dữ liệu cốt lõi để biết rằng sự thay đổi cơ sở dữ liệu đã được hoàn thành? Thật lạ vì tất cả dữ liệu luôn ở trong cơ sở dữ liệu, không được sắp xếp. Tôi không phải siêu kinh nghiệm với nó, vì vậy tôi không chắc chắn.Dữ liệu lõi NSFetchRequest trả về mảng chưa được phân loại sau khi xóa đối tượng và nạp lại dữ liệu

Dưới đây là đoạn code từ yêu cầu lấy tôi:

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]; 
+1

Thử lưu ngữ cảnh giữa xóa và tìm nạp lại. – Costique

+0

Tôi đang lưu ngay sau khi cuộc gọi xóa trong phương thức commitEditingStyle: của tôi. Tôi đã thấy rằng nếu tôi thêm một đối tượng vào cơ sở dữ liệu và thử và vẽ đồ thị quá nhanh, cùng một vấn đề xảy ra khi nó không được sắp xếp. – Jamie

+0

Bạn có sử dụng lại đối tượng 'NSFetchRequest' khi tìm nạp lại không? Dường như vấn đề bộ nhớ đệm. – Costique

Trả lời

0

Bạn đang sử dụng controllerDidChangeContent: gọi lại?

Có thể sử dụng quyền này để cập nhật chế độ xem của bạn thay vì thực hiện theo quy trình sau khi bạn lưu ngữ cảnh của mình.

+0

Tôi có thể thử điều này, nhưng cũng nếu tôi thêm một đối tượng vào cơ sở dữ liệu trước khi thiết lập một FetchedResultsController (trong một chế độ xem khác) và tải bảng và đồ thị quá nhanh, nó cũng không được sắp xếp. – Jamie

Các vấn đề liên quan