核心数据和didSelectRowAtIndexPath

时间:2014-01-19 21:46:38

标签: ios objective-c uitableview core-data

我正在尝试学习在我的应用中使用核心数据。我怎么会被困在didSelectRowAtIndexPath

我希望能够像以前一样使用我的uitableview

arrayA是一个由plist填充的nsarray。我无法弄清楚如何更改此代码以使用Core Data

在我的核心数据中我有HovedMenu BarneDaab和Graviditeten他们都有menuPunkt的属性,其中包含字符串。所以问题是如何让这些代码与核心数据一起使用?

我认为arrayA必须改变 ofc ,但要改变什么? 这是我从plist加载时使用的旧代码。 我想将其升级为核心数据

if ([arrayA[indexPath.row][@"menuPunkt"]isEqualToString:@"Barnedåb"]) {
    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"BarneDaab" bundle:nil];
    barneDaabMenuViewController *controller = [storyboard instantiateViewControllerWithIdentifier:@"barneDaab"];
    [self.navigationController pushViewController:controller animated:YES];

}

这是我的看法:

- (NSFetchedResultsController *)fetchedResultsController {

if (_fetchedResultsController != nil) {
    return _fetchedResultsController;
}
NSError *error;
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
MBBAppDelegate *appDelegate = (MBBAppDelegate *)[[UIApplication sharedApplication] delegate];
NSManagedObjectContext* context = appDelegate.managedObjectContext;

NSEntityDescription *entity = [NSEntityDescription entityForName:@"Hovedmenu" inManagedObjectContext:context];
[fetchRequest setEntity:entity];
NSSortDescriptor *sort = [[NSSortDescriptor alloc]
                          initWithKey:@"menuPunkt" ascending:NO];
[fetchRequest setSortDescriptors:[NSArray arrayWithObject:sort]];

[fetchRequest setFetchBatchSize:20];

NSFetchedResultsController *theFetchedResultsController =
[[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest
                                    managedObjectContext:context sectionNameKeyPath:nil
                                               cacheName:nil];

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

return _fetchedResultsController;

}

1 个答案:

答案 0 :(得分:1)

基本上,您需要做的就是通过调用FRC来替换arrayA[indexPath.row][@"menuPunkt"]以获取适当的对象(就像更新单元格内容一样)。

[[self.fetchedResultsController objectAtIndexPath:indexPath] valueForKey:@"menuPunkt"]

(你需要更改@“menuPunkt”的引用方法,因为你曾经有过字典,现在你有了托管对象,所以语法糖不起作用。)