Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone FetchedResultsController问题_Iphone_Objective C_Cocoa Touch_Ipad - Fatal编程技术网

Iphone FetchedResultsController问题

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;

我有个问题,让我发疯。我想这应该很容易解决,但我不明白

我正在尝试使用fetchedResultsController设置tableview,但出于某种原因,frc返回的节计数为零。以下是我的frc代码:

- (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);
 }