- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在编写我的第一个 iPhone/Cocoa 应用程序。它在导航 View 中有两个 TableView 。当您触摸第一个 TableView 中的一行时,您将被带到第二个 TableView 。我希望第二个 View 显示与您在第一个 View 中触摸的行相关的 CoreData 实体的记录。
我在第一个表格 View 中显示了 CoreData 数据。您可以触摸一行并转到第二个表格 View 。我能够将所选对象的信息从第一个 View 传递到第二个 View 。但是我无法让第二个 View 进行自己的 CoreData 获取。在我的一生中,我无法将 managedObjectContext 对象传递给第二个 View Controller 。我不想在第一个 View 中进行查找并传递字典,因为我希望能够使用搜索字段来优化第二个 View 中的结果,以及从那里向 CoreData 数据插入新条目。
这是从第一个 View 转换到第二个 View 的函数。
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
// Navigation logic may go here -- for example, create and push another view controller.
NSManagedObject *selectedObject = [[self fetchedResultsController] objectAtIndexPath:indexPath];
SecondViewController *secondViewController = [[SecondViewController alloc] initWithNibName:@"SecondView" bundle:nil];
secondViewController.tName = [[selectedObject valueForKey:@"name"] description];
secondViewController.managedObjectContext = [self managedObjectContext];
[self.navigationController pushViewController:secondViewController animated:YES];
[secondViewController release];
}
这是崩溃的 SecondViewController 中的函数:
- (void)viewDidLoad {
[super viewDidLoad];
self.title = tName;
NSError *error;
if (![[self fetchedResultsController] performFetch:&error]) { // <-- crashes here
// Handle the error...
}
}
- (NSFetchedResultsController *)fetchedResultsController {
if (fetchedResultsController != nil) {
return fetchedResultsController;
}
/*
Set up the fetched results controller.
*/
// Create the fetch request for the entity.
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
// Edit the entity name as appropriate.
// **** crashes on the next line because managedObjectContext == 0x0
NSEntityDescription *entity = [NSEntityDescription entityForName:@"SecondEntity" inManagedObjectContext:managedObjectContext];
[fetchRequest setEntity:entity];
// <snip> ... more code here from Apple template, never gets executed because of the crashing
return fetchedResultsController;
}
关于我在这里做错了什么有什么想法吗?
managedObjectContext 是一个保留的属性。
更新:我插入了一个 NSLog([[managedObjectContext registeredObjects] description]);在 viewDidLoad 中,看起来 managedObjectContext 被传递得很好。不过,还是崩溃了。
由于未捕获的异常“NSInternalInconsistencyException”而终止应用程序,原因:“+entityForName:无法找到实体名称“SecondEntity”的 NSManagedObjectModel”
最佳答案
您可以通过首先转换您的应用程序委托(delegate)来抑制协议(protocol)中未找到的“-managedObjectContext”警告:
if (managedObjectContext == nil) { managedObjectContext = [(MyAppDelegateName *)[[UIApplication sharedApplication] delegate] managedObjectContext]; }
关于iphone - 将 ManagedObjectContext 传递给第二个 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1074539/
因此,我有 CoreData 实体 Book、Bookmark、Highlight。一本书包含关于这本书的信息和一个 Bookmarks 的 NSSet。 我想删除一本书中的书签,然后立即用我的集合重
(如果这个问题有点令人困惑/不精确,我很抱歉。我只是在学习高级 CoreData 用法,我不太了解术语和其他东西)。 我有一个单例 Game,它包含您在游戏过程中需要的某些数据。例如,您可以从那里访问
我有一个基本的 SwiftUI 应用程序,它初始化了 NSPersistentCloudKitContainer在应用程序启动时基于持久堆栈并将 viewContext 注入(inject)环境并将其
我正在将 Core Data 集成到不是使用 Core Data 模板创建的应用程序中。我对此有疑问,可能有一个非常简单的答案。然而,由于大多数关于这个主题的教程都是针对使用模板的,所以我很难过。 我
多个 ManagedObjectContext (MOC) 如何在核心数据中工作(Swift 2、iOS 9)。我浏览了很多在线链接和 Material 以及 StackOverflow 上的答案,但
我正在尝试创建一个新的核心数据对象,并用某个 View 的 subview 的一些信息填充它。 (只是为了用 template_control 对象填充数组) 有什么问题?该对象无法保存,但稍后当我对
我有两个 ManagedObjectContext(MOC):一个临时MOC 和一个持久MOC。如果我在 tempMOC 中初始化一个实体并且用户决定保存,我将保存更改并将更改合并到 persiste
我正在尝试学习核心数据,但在将新对象添加到现有对象后更新 MOC 时遇到问题。我可以创建原始对象(训练日),并且可以将练习对象添加到该训练日,但我不知道如何保存上下文,以便稍后在我的应用程序中可以找到
非常需要建议,目前没有想法。我与核心数据并发相关的问题叠加在一起,调试我使用 -"com.apple.CoreData.ConcurrencyDebug"和我所拥有的: 堆栈: 线程 3 队列:cor
我正在按照教程开发 iOS 应用程序。我正在使用核心数据。应用程序的第一个 View 是 RootViewController。所有核心数据堆栈都在 AppDelegate 文件中。这是 AppDel
我目前正在开发一个发出 HTTP 请求(通过 AsiHTTPRequest)然后解析 JSON 流的应用程序。基本上有一个 tableView/NSFetchedResultsController,它
我有一个应用程序,它使用 CoreData 使用 MPMediaPicker 保存不同的播放列表。保存第一个后,当我尝试添加第二个时,应用程序崩溃了。下面是整个调试队列。 创建第一条记录。 music
如何管理临时保存的 CoreData?一旦我做了这样的事情: var myClass: MyClass = NSEntityDescription.insertNewObjectForEntityFo
在我正在开发的应用程序中,我需要同时访问和写入核心数据。我已经能够收集到这意味着我需要使用多个 managedObjectContexts,但我不明白我应该如何设置这两个 managedObjectC
我是 iOS 开发新手。我正在编写一个允许用户读取/写入核心数据记录的 iOS 应用程序。这些记录将通过 http 同步到服务器。我有一组链式(串行)NSOperations 在执行同步的后台线程中运
我正在尝试将核心数据添加到现有项目中。我有: 1) 添加了核心数据框架2)将访问器和属性添加到 AppDelegate3)创建数据模型文件 现在当我尝试调用NSManagedObjectContext
我想使用单例 UIApplication 来访问 AppDelegate 的 managedObjectContext。但是当我写 [[[UIApplication sharedApplication
在我的 iOS 应用程序中,我有一个核心数据,我注意到有时在特定 View 中,当我从核心数据中检索信息时,并不总是最新的,我解释得很好: 如果我更新核心数据中的一些值,然后进入特定 View 查看此
我在 iPhone 上的核心数据项目遇到问题。当用户开始添加对象,然后在此过程中取消时,就会发生这种情况。 如果用户点击取消并返回到对象列表,则会在那里列出一个虚拟对象,代表他们正在创建的对象。这永远
我有两个实体,我将它们建模为类和核心数据模型实体/这些类如下所示: 类:StateManager #import #import #import "StateManager.h" #import
我是一名优秀的程序员,十分优秀!