0

我有一个奇怪的错误:如果我取消注释 my NSPredicate,结果UITableView是空的。

我的数据模型如下:类别 <-->> Feed <-->> Post

我正在取Posts。Post.feed是一个Post。有财产。FeedFeedrss NString

这是代码:

    - (NSFetchedResultsController *)fetchedResultsController {

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

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

            NSPredicate *predicate =[NSPredicate predicateWithFormat:@"feed.rss == %@",  _detailItem.rss];
            [fetchRequest setPredicate:predicate];

            // 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:_globalMOC
                                                  sectionNameKeyPath:nil
                                                           cacheName:nil];
            self.fetchedResultsController = aFetchedResultsController;

            self.fetchedResultsController.delegate = self;

            NSError *error = nil;

            if (![self.fetchedResultsController performFetch:&error]) {
                // Replace this implementation with code to handle the error appropriately.
                // abort() causes the application to generate a crash log and terminate.
                // You should not use this function in a shipping application, although it may be useful
                // during development. If it is not possible to recover from the error, display an alert
                // panel that instructs the user to quit the application by pressing the Home button.
                //
                NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
                abort();
            }

        }

        return _fetchedResultsController;
    }

如果我取消注释,我只会看到结果NSPredicate。我尝试使用LIKE, ==, =, 用双引号和单引号%@...

最好是直接比较Feed对象...

任何人都可以帮助我吗?

4

1 回答 1

0

在这里解决。

问题是甚至在设置NSFetchedResultsController之前就初始化了一次。_detailItem

于 2013-10-29T13:58:26.643 回答