调用ViewController返回nil

时间:2010-04-27 09:28:33

标签: iphone core-data

我想在这个阶段解决这个问题好几天,我希望你能帮忙。

我有两个ViewControllers,使用Core Data从同一个数据库中查询两个不同的表。第一个ViewController随应用程序打开并显示正常。第二个是从第一个ViewController中调用的,使用非常标准的提取设置:

- (NSFetchedResultsController *)fetchedClients {
    // Set up the fetched results controller if needed.
    if (fetchedClients == nil) {
        // Create the fetch request for the entity.
        NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
        // Edit the entity name as appropriate.
        NSEntityDescription *entity = [NSEntityDescription entityForName:@"Clients" 
              inManagedObjectContext:managedObjectContext];
        [fetchRequest setEntity:entity];




        // Edit the sort key as appropriate.
        NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"clientsName" ascending:YES];
        NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor, nil];

        [fetchRequest setSortDescriptors:sortDescriptors];

        // Edit the section name key path and cache name if appropriate.
        // nil for section name key path means "no sections".
        NSFetchedResultsController *aFetchedResultsController = [[NSFetchedResultsController alloc] 
                 initWithFetchRequest:fetchRequest
                 managedObjectContext:managedObjectContext
                 sectionNameKeyPath:nil
                 cacheName:@"Root"];
        aFetchedResultsController.delegate = self;
        self.fetchedClients = aFetchedResultsController;

        [aFetchedResultsController release];
        [fetchRequest release];
        [sortDescriptor release];
        [sortDescriptors release];
    }

 return fetchedClients;
}    

当我调用[self.fetchedClients部分]时,我得到一个nil(0x0)返回。

我使用外部应用程序检查了数据库,以确保“客户”表中存在数据。

1 个答案:

答案 0 :(得分:4)

你在编译3.0吗?你是3.0中的一个错误,它在3.1中得到修复,可能导致这个问题。

更新

您是否在返回的NSFetchedResultsController上调用-performFetch:我在你发布的代码中看不到它。