Ios 核心数据和didSelectRowAtIndexPath
我正在努力学习在我的应用程序中使用核心数据。我怎么会被困在didSelectRowAtIndexPath 如果可能的话,我希望能够像以前一样使用uitableview arrayA是一个由plist填充的nsarray。我不知道如何修改代码来处理核心数据 在我的核心数据中,我有HovedMenu BarneDaab和Graviditeten,它们都有包含字符串的menuPunkt属性。所以问题是如何让代码与核心数据一起工作 我认为arrayA必须改变ofc,但是改变什么呢? 这是我从plist加载时使用的旧代码我想将其升级到核心数据Ios 核心数据和didSelectRowAtIndexPath,ios,objective-c,uitableview,core-data,Ios,Objective C,Uitableview,Core Data,我正在努力学习在我的应用程序中使用核心数据。我怎么会被困在didSelectRowAtIndexPath 如果可能的话,我希望能够像以前一样使用uitableview arrayA是一个由plist填充的nsarray。我不知道如何修改代码来处理核心数据 在我的核心数据中,我有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;
}基本上,您所需要做的似乎就是将
arrayA[indexPath.row][@“menuPunkt”]
替换为对FRC的调用,以获取适当的对象(就像更新单元格内容一样)
(您需要更改@“menuPunkt”的引用方法,因为您以前有字典,现在有了管理对象,所以语法糖不起作用)。您使用FRC用信息填充单元格?那么你得到了合适的对象了吗?@Wain是的,我得到了合适的对象。在表中,有些内容的顺序完全错误,但这不是这里的主要问题:)那么,当您有FRC时,为什么需要数组呢。以及它所持有的物品的访问权?@Wain array在哪里?我需要一种让代码正常工作的方法,但不知道tableview使用IsEqualToString或其他什么,我需要一种让tableview使用IsEqualToString或其他什么的方法,所以我知道要与Xcode交互的表行希望我添加一个额外的[在self之前的开始处。它会抛出一个错误***由于未捕获的异常“NSInvalidArgumentException”终止应用程序,原因:'-[Hovedmenu objectForKeyedSubscript:]:无法识别的选择器发送到实例0x8a805b0'Ah,我的错,1分钟。
[[self.fetchedResultsController objectAtIndexPath:indexPath] valueForKey:@"menuPunkt"]