iphone - 核心数据一对多获取数据

标签 iphone objective-c ios core-data

好的,我在核心数据中有一个一对多的关系。一顿饭可以包含许多不同的食物。我的代码似乎不能在 Fetch Controller 中运行。我可以自信地说,self.meal 是我正在尝试获取的当前 Meal。我在整个应用程序中共享上下文。

我遇到的问题是应用程序正在显示食物,但它似乎与膳食中应该包含的内容不太匹配。只要我添加食物,它就会立即显示出来,即使它不在餐中。

任何帮助或建议,我正在正确地执行此提取操作。

- (NSFetchedResultsController *)fetchedResultsController 
{       
    self.context = [(AppDelegate *)[[UIApplication sharedApplication] delegate] managedObjectContext]; 

    if (_fetchedResultsController != nil) {
        return _fetchedResultsController;
    }

    NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
    NSEntityDescription *entity = [NSEntityDescription entityForName:@"Food" inManagedObjectContext:self.context];

    [fetchRequest setEntity:entity];


    NSPredicate *foodPredicate = [NSPredicate predicateWithFormat:@"meals == %@", self.meal];
    [fetchRequest setPredicate:foodPredicate];

    NSSortDescriptor *sort = [[NSSortDescriptor alloc] initWithKey:@"name" ascending:NO];
    [fetchRequest setSortDescriptors:[NSArray arrayWithObject:sort]];
    [fetchRequest setFetchBatchSize:20];

    NSFetchedResultsController *theFetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:self.context sectionNameKeyPath:nil cacheName:@"Root"];


    self.fetchedResultsController = theFetchedResultsController;
    _fetchedResultsController.delegate = self;

    [fetchRequest release];
    [theFetchedResultsController release];

    return _fetchedResultsController;
}

最佳答案

如果 self.mealsnil 那么 NSFetchedResultsController 将返回不属于 a 的 Food 膳食,从而说明您注意到的行为。

关于iphone - 核心数据一对多获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9731062/

相关文章:

iphone - 如何向 UITextField 和 UITextView 添加方法?

objective-c - 使用新的 Facebook api 邀请 friend

objective-c - 使用 Dropbox iOS API 和 NSDate 下载或上传文件不起作用

objective-c - CoreLocation 停止为几个应用程序用户工作

html - 无法阻止初始比例 = 1 的 iPhone 缩放

iphone - 核心数据对象失效

ios - 如何直接分享文字和图片到whatsapp

ios - MPMoviePlayerController 在 Cocos2D 中导致约束警告

ios - 将 UIView 从一个 UIScrollView 拖到另一个 UIScrollView

iphone - iOS 排行榜不显示分数数据