FetchedResultsController-проблема - PullRequest
       4

FetchedResultsController-проблема

0 голосов
/ 24 сентября 2011

У меня проблема, которая сводит меня с ума.Я думаю, это должно быть довольно легко решить, но я не понимаю ...

Я пытаюсь настроить просмотр таблицы с помощью fetchedResultsController, но по какой-то причине 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

1 Ответ

2 голосов
/ 24 сентября 2011

Что ж, похоже, вы правильно настроили выборку, но вам, вероятно, следует на самом деле делать выборку ....

NSError *error = nil;
if (![aFetchedResultsController performFetch:&error]) {
     NSLog(@"Bad Fetch %@", error);
 } 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...