Tôi đang đặt NSFetchedResultsController vào mã của mình để tôi nhận được phần tự động tốt đẹp của dữ liệu chế độ xem bảng của mình.Cách định cấu hình đúng cách NSFetchedResultsController
Vì vậy, tôi đang chạy thử nghiệm để đảm bảo mọi thứ hoạt động bình thường. Tôi có một thực thể Sách duy nhất trong cửa hàng liên tục của mình. Trước tiên tôi sẽ thực hiện tìm nạp theo cách cũ, sau đó tôi sẽ cố gắng sử dụng NSFetchedResultsController. Sự khác biệt giữa 2 khối mã chỉ là 2 dòng.
Mã mà không NSFetchedResultsController:
NSFetchRequest *request = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:kBookEntityName inManagedObjectContext:self.managedObjectContext];
[request setEntity:entity];
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"title" ascending:NO];
NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor, nil];
[request setSortDescriptors:sortDescriptors];
[sortDescriptor release];
[sortDescriptors release];
//The following 2 lines will be replaced by the NSFetchedResultsController
NSMutableArray *mutableFetchResults = [[[self.managedObjectContext executeFetchRequest:request error:nil] mutableCopy] autorelease];
Book *result = (Book*)[mutableFetchResults objectAtIndex:0];
NSString* title = [result valueForKey:@"title"];
NSString* priority = [result valueForKeyPath:@"priority.name"];
[request release];
Bây giờ tôi thay thế trong các dòng cho NSFetchedResultsController:
NSFetchedResultsController* fetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:request managedObjectContext:self.managedObjectContext sectionNameKeyPath:@"title" cacheName:@"BookList"];
Book *result = (Book*)[fetchedResultsController objectAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0]];
có vẻ khá cắt và khô. Khối mã đầu tiên tìm nạp đúng thực thể Sách đơn lẻ. Tuy nhiên, mã với NSFetchedResultsController thì không. Thay vào đó nó trả về nil.
Câu hỏi của tôi là: Tôi có đang định cấu hình đúng NSFetchedResultsController trong ví dụ này không?
(lưu ý, các fetchedObjects tài sản của NSFetchedResultsController cũng là con số không)
tổ chức "tiêu đề" chỉ là một thử nghiệm để thiết lập và chạy nó. Tôi thực sự muốn chia theo một con đường chính trên tên tác giả, nhưng muốn làm cho nó hoạt động với một ví dụ đơn giản. –
Đó là khá buồn mà tôi đã không thực sự thực hiện lấy. Tôi không biết tại sao tôi giả định việc lấy được thực hiện khi khởi tạo. Cảm ơn –
cảm ơn, điều đó giúp tôi :) – mateusmaso