带有多个视图控制器的Swift 3中的核心数据实现

时间:2017-01-25 06:28:29

标签: ios swift xcode core-data

我已经开发了3个月的iOS,我目前正在使用多个视图控制器(~12)在Xcode 8.2中构建一个主 - 详细应用程序,同时使用tableviewcontrollers和viewcontrollers。

我已经利用基础知识在单个视图控制器中保存和获取Core Data,并将数据推送到另一个视图控制器。但那就是我陷入困境的地方。许多关于Apple文档的教程很多次,我仍然坚持如何在多个视图控制器上使用CoreData(因此有多个swift文件)。

如果有人知道涵盖这个主题的好教程,我们将不胜感激。

或者,如果您可以推荐以这种方式使用CoreData的最佳方式,那也是值得赞赏的。

该应用程序的基本结构是:

  

项目列表(在主视图控制器中)

     
    

添加项目(模态表格)

         

项目部分(在主视图控制器中)

         
      

项目部分详细信息(在多个详细信息视图控制器中)

    
  

我遇到的问题是:

  

当您深入到项目部门详细信息级别时,与CoreData的连接已经退出(尽管我努力向前传递数据)并且我无法填充单元格/文本字段/等。使用现有数据

     

此时尝试保存会生成一个新的CoreData对象,而不是更新现有的对象。

向前和向后传递数据以使用CoreData吗?或者有没有办法创建一个托管对象上下文(即在超类中?)并与之交易?

提前致谢。

1 个答案:

答案 0 :(得分:0)

对于延迟回复表示歉意。我需要的信息非常广泛,所以不得不过去大量的代码,这些代码会很快失去连贯性。所以我最终解决了自己的问题。

A)关于网络上核心数据的最佳教程就是TutsPlus。从概念上和实践上涵盖了所有基础知识和高级功能。我不能高度推荐它。

B)我发现很容易实现的跨多个视图控制器使用Core Data的解决方案是将需要重复访问的变量移动到全局变量中。例如,在我的情况下:

/ ----------------------------------- /

导入UIKit

导入CoreData

var fetchedResultsController:NSFetchedResultsController

var managedObjectContext:NSManagedObjectContext?

类MasterViewController:UITableViewController,NSFetchedResultsControllerDelegate {

//代码

}

/ ----------------------------------- /

希望能帮助别人!

PS代码段在触摸屏上已关闭,因此我为格式化道歉。