Tôi gặp sự cố Tôi không biết nó đến từ đâu, liên quan đến CoreData. Trong cơ sở dữ liệu của tôi, có một tập hợp các loại (với tên và mô tả), có chứa các phần tử (sử dụng mối quan hệ một-nhiều).NSFetchedResultsController có 0 phần
Tôi muốn chia chế độ xem bảng của mình thành các thuộc tính của lớp Category
, nhưng khi tôi cố gắng thực hiện bằng cách sử dụng sectionNameKeyPath:
, kết quả là NSFetchedResultsController
có 0 phần. Nếu tôi truyền nil cho tham số này, nó có 1 phần.
Mã này là như sau:
- (NSFetchedResultsController*) fetchedResultsController
{
if(fetchedResultsController)
return fetchedResultsController;
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
// Edit the entity name as appropriate.
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Category"
inManagedObjectContext:self.managedObjectContext];
[fetchRequest setEntity:entity];
// Set the batch size to a suitable number.
[fetchRequest setFetchBatchSize:10];
// Edit the sort key as appropriate.
NSSortDescriptor *checkDescriptor = [[NSSortDescriptor alloc] initWithKey:@"checked"
ascending:YES];
NSSortDescriptor *indexDescriptor = [[NSSortDescriptor alloc] initWithKey:@"orderIndex"
ascending:YES];
NSArray *sortDescriptors = @[checkDescriptor, indexDescriptor];
[fetchRequest setSortDescriptors:sortDescriptors];
// Edit the section name key path and cache name if appropriate.
// nil for section name key path means "no sections".
fetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest
managedObjectContext:self.managedObjectContext
sectionNameKeyPath:@"checked"
cacheName:nil];
NSError *error = nil;
if (![fetchedResultsController performFetch:&error]) {
NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
abort();
return nil;
} else {
fetchedResultsController.delegate = self;
return fetchedResultsController;
}
}
Nó tiếp tục tạo 0 phần ... – gskbyte
Bạn đã @synthesize fetchedResultsController chưa? Tôi đã có một vấn đề tương tự và đây là vấn đề. – Giovanni