我正在尝试学习在我的应用中使用核心数据。我怎么会被困在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;
}
答案 0 :(得分:1)
基本上,您需要做的就是通过调用FRC来替换arrayA[indexPath.row][@"menuPunkt"]
以获取适当的对象(就像更新单元格内容一样)。
[[self.fetchedResultsController objectAtIndexPath:indexPath] valueForKey:@"menuPunkt"]
(你需要更改@“menuPunkt”的引用方法,因为你曾经有过字典,现在你有了托管对象,所以语法糖不起作用。)