如何以正确的方式加载 PersistentStores?

How to load the PersistentStores in a correct way?

我整个周末和今天都在网上寻找如何正确处理 PersistentStores 加载时的任何错误,但没有成功!

实际上,很多人都在寻找相同的解决方案,但没有人得到答案。例如:https://www.hackingwithswift.com/forums/swift/core-data-error-checking/3794

Apple 在他们的模板中给了我们一个 fatalError,同时告诉我们不要将它用于运输应用程序。

这里还有如何获得它,来自 Youtube 上的许多教程,例如:

container.loadPersistentStores(completionHandler: { (storeDescription, error) in

    if let error = error {
        print("Core Data failed to load: \(error.localizedDescription)!")
    }

    print("Core Data succeed to load!")

})

由于我无法处理潜在的错误,因为我仍然不知道该怎么做,所以我很乐意只加载它而不处理任何错误;但我不能只删除 ifprint 并将其留空。那么,我应该在里面放什么呢?

这个问题没有直接的答案,因为你做什么取决于你的应用程序做什么以及你希望它在这种情况下如何响应。每个应用程序的要求都不一样,您没有给出任何说明。

如果发生此错误,则您的应用无法加载持久存储。该存储中可能存在的任何数据都不可用。新数据无法保存到该存储区。你该怎么办?在您的应用中,您可以做什么来满足您的要求? 如果此持久存储不可用,您希望您的应用做什么?在您的特定应用中,您认为什么是合理的响应?这就是你在这里所做的。

没有真正的恢复路径;你不能简单地让错误消失。您可以尝试删除旧的持久存储并创建一个新的。这将丢失任何以前保存的数据。那样行吗?这取决于您和您的应用程序。如果您想这样做,请查看 destroyPersistentStore(at:, type:, options:) 函数以将其彻底删除。然后再次尝试加载商店,将创建一个新商店。