Ios 使用NSPersistentContainer拆卸和重建核心数据堆栈

Ios 使用NSPersistentContainer拆卸和重建核心数据堆栈,ios,core-data,restore,Ios,Core Data,Restore,我确信这个问题会被问和回答很多次,但我惊讶地发现,经过几个小时的搜索,我找不到答案。随着iOS 10的诞生,NSPersistentContainer改变了我们处理核心数据堆栈的方式。我了解如何设置核心数据堆栈。但当底层存储被替换(在我的例子中是sqlite)时,拆除并重建核心数据堆栈是一个不同的过程。我希望这是一个愚蠢的问题,有人能指出我在这个话题上遗漏了75个问题。否则,我将感谢您提供的任何帮助。您以前所做的任何事情都应该以同样的方式工作。NSPersistentContainer不是魔法,

我确信这个问题会被问和回答很多次,但我惊讶地发现,经过几个小时的搜索,我找不到答案。随着iOS 10的诞生,NSPersistentContainer改变了我们处理核心数据堆栈的方式。我了解如何设置核心数据堆栈。但当底层存储被替换(在我的例子中是sqlite)时,拆除并重建核心数据堆栈是一个不同的过程。我希望这是一个愚蠢的问题,有人能指出我在这个话题上遗漏了75个问题。否则,我将感谢您提供的任何帮助。

您以前所做的任何事情都应该以同样的方式工作。NSPersistentContainer不是魔法,也没有那么多功能。使用模型和主线程上下文设置存储非常方便。它具有创建背景上下文的方法。它并不能取代您对核心数据的所有了解。里面都是一样的东西。persistentContainer中有一个指向persistentStoreCoordinator的指针,它有一个指向模型和存储的指针


我不知道替换存储的代码是什么,所以我无法帮助您将其转换为persistentContainer。如果您发现自己做不到,那么就没有理由坚持使用NpersistentContainer,正如我之前所说的——它不是魔法,对您也没有多大帮助。

通常您不能(或至少不应该)切换PersistentContainer的存储。如果您想删除存储中的所有数据,您应该这样做。如果您有两个代表两个不同事物的不同存储,那么您应该有两个PersistentContainer。你想实现什么?我在我的应用程序中实现备份/恢复。用户可以使用从备份中保存的数据还原数据。我已经这样做了几年(在iOS 10之前),根据我在stack Overflow上找到的说明,仔细地拆除和重建核心数据堆栈。我觉得新的方法提供了一种实现这一点的方法——我只是不知道它是什么。