Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 使用多视图控制器在Swift 3中实现核心数据_Ios_Swift_Xcode_Core Data - Fatal编程技术网

Ios 使用多视图控制器在Swift 3中实现核心数据

Ios 使用多视图控制器在Swift 3中实现核心数据,ios,swift,xcode,core-data,Ios,Swift,Xcode,Core Data,我已经在iOS上开发了3个月了,目前我正在Xcode 8.2中构建一个主细节应用程序,其中包含多个视图控制器(~12),同时使用TableViewController和ViewController 我利用这些基础知识在单个视图控制器中保存和获取核心数据,并将数据向前推送到另一个视图控制器。但这就是我被困的地方。许多关于苹果文档的教程和回顾很多次我仍然被困在如何跨多个视图控制器(以及多个swift文件)使用CoreData的问题上 如果有人知道一个很好的教程,涵盖这一主题,将不胜感激 或者,如果您

我已经在iOS上开发了3个月了,目前我正在Xcode 8.2中构建一个主细节应用程序,其中包含多个视图控制器(~12),同时使用TableViewController和ViewController

我利用这些基础知识在单个视图控制器中保存和获取核心数据,并将数据向前推送到另一个视图控制器。但这就是我被困的地方。许多关于苹果文档的教程和回顾很多次我仍然被困在如何跨多个视图控制器(以及多个swift文件)使用CoreData的问题上

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

或者,如果您能推荐以这种方式使用CoreData的最佳方式,我们也将不胜感激

应用程序的基本结构是:

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

添加项目(模式表单)

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

项目剖面详图(在多个详图视图控制器中)

我面临的问题是:

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

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

向前和向后传递数据是使用CoreData的方式吗?或者有没有一种方法可以创建一个单一的托管对象上下文(即在一个超类中?)并处理它


提前谢谢。

很抱歉延迟回复。我所需要的信息非常广泛,因此必须通过大量的代码,这些代码很快就会失去一致性。所以我最终解决了自己的问题

A) 关于网络核心数据的最佳教程是这本。从概念上和实践上涵盖所有基本功能和高级功能。我极力推荐它

B) 我发现East要实现的跨多个视图控制器处理核心数据的解决方案是将需要重复访问的变量移动到全局变量中。例如,在我的案例中:

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

导入UIKit

导入CoreData

var fetchedResultsController:NSFetchedResultsController

var managedObjectContext:NSManagedObjectContext

类MasterViewController:UITableViewController、NSFetchedResultsControllerDelegate{

//代码

}

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

希望能帮助别人


PS代码片段在触摸屏上被关闭,因此我对其格式表示歉意。

发布一些代码,我们可以看到您的错误所在。请告诉我们您面临的问题。可能是某种操作系统场景,在这种场景中,您的代码正在崩溃。如果不是这样,那就很难帮助你了。