我已经开发了3个月的iOS,我目前正在使用多个视图控制器(~12)在Xcode 8.2中构建一个主 - 详细应用程序,同时使用tableviewcontrollers和viewcontrollers。
我已经利用基础知识在单个视图控制器中保存和获取Core Data,并将数据推送到另一个视图控制器。但那就是我陷入困境的地方。许多关于Apple文档的教程很多次,我仍然坚持如何在多个视图控制器上使用CoreData(因此有多个swift文件)。
如果有人知道涵盖这个主题的好教程,我们将不胜感激。
或者,如果您可以推荐以这种方式使用CoreData的最佳方式,那也是值得赞赏的。
该应用程序的基本结构是:
项目列表(在主视图控制器中)
添加项目(模态表格)
项目部分(在主视图控制器中)
项目部分详细信息(在多个详细信息视图控制器中)
我遇到的问题是:
当您深入到项目部门详细信息级别时,与CoreData的连接已经退出(尽管我努力向前传递数据)并且我无法填充单元格/文本字段/等。使用现有数据
此时尝试保存会生成一个新的CoreData对象,而不是更新现有的对象。
向前和向后传递数据以使用CoreData吗?或者有没有办法创建一个托管对象上下文(即在超类中?)并与之交易?
提前致谢。
答案 0 :(得分:0)
对于延迟回复表示歉意。我需要的信息非常广泛,所以不得不过去大量的代码,这些代码会很快失去连贯性。所以我最终解决了自己的问题。
A)关于网络上核心数据的最佳教程就是TutsPlus。从概念上和实践上涵盖了所有基础知识和高级功能。我不能高度推荐它。
B)我发现很容易实现的跨多个视图控制器使用Core Data的解决方案是将需要重复访问的变量移动到全局变量中。例如,在我的情况下:
/ ----------------------------------- /
导入UIKit
导入CoreData
var fetchedResultsController:NSFetchedResultsController
var managedObjectContext:NSManagedObjectContext?
类MasterViewController:UITableViewController,NSFetchedResultsControllerDelegate {
//代码
}
/ ----------------------------------- /
希望能帮助别人!
PS代码段在触摸屏上已关闭,因此我为格式化道歉。