Iphone FetchedResultsController问题
我有个问题,让我发疯。我想这应该很容易解决,但我不明白 我正在尝试使用fetchedResultsController设置tableview,但出于某种原因,frc返回的节计数为零。以下是我的frc代码:Iphone FetchedResultsController问题,iphone,objective-c,cocoa-touch,ipad,Iphone,Objective C,Cocoa Touch,Ipad,我有个问题,让我发疯。我想这应该很容易解决,但我不明白 我正在尝试使用fetchedResultsController设置tableview,但出于某种原因,frc返回的节计数为零。以下是我的frc代码: - (NSFetchedResultsController *)fetchedResultsController { if (_fetchedResultsController != nil) { return _fetchedResultsController;
- (NSFetchedResultsController *)fetchedResultsController
{
if (_fetchedResultsController != nil) {
return _fetchedResultsController;
}
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Kundendaten" inManagedObjectContext:self.managedObjectContext];
[fetchRequest setEntity:entity];
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"Kundenname" ascending:YES];
NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor, nil];
[fetchRequest setSortDescriptors:sortDescriptors];
NSFetchedResultsController *aFetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:self.managedObjectContext sectionNameKeyPath:@"Kundenname" cacheName:@"Root"];
aFetchedResultsController.delegate = self;
self._fetchedResultsController = aFetchedResultsController;
[aFetchedResultsController release];
[fetchRequest release];
[sortDescriptor release];
[sortDescriptors release];
return _fetchedResultsController;
}
在这里,我试图获得部分计数:
int count = [[[self fetchedResultsController] sections] count];
//此时,count变量为0。以下只是为了证明,我的moc不是空的。。。即使我将sectionNameKeyPath设置为nil,它也会返回0
NSEntityDescription *entityDescription = [NSEntityDescription
entityForName:@"Kundendaten" inManagedObjectContext:self.managedObjectContext];
NSFetchRequest *request = [[[NSFetchRequest alloc] init] autorelease];
[request setEntity:entityDescription];
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc]
initWithKey:@"Kundenname" ascending:YES];
[request setSortDescriptors:[NSArray arrayWithObject:sortDescriptor]];
[sortDescriptor release];
NSError *error = nil;
NSArray *array = [self.managedObjectContext executeFetchRequest:request error:&error];
count = [array count];
return count;
在这种情况下,计数是5
有人看到问题出在哪里了吗
thx好吧,看起来您已经很好地设置了提取,但是您可能实际上应该进行提取
NSError *error = nil;
if (![aFetchedResultsController performFetch:&error]) {
NSLog(@"Bad Fetch %@", error);
}