嘿伙计们我正在开发一个使用Core Data和iCloud集成的项目。该项目是一个简单的工作台视图,带有一个添加按钮,可以使用文本字段加载警报,并且用户输入显示在工作表视图上,按下“确定”按钮。
此应用程序基于Tim Roadley“使用Swift学习iOS核心数据”一书中的EZiCloud模板。
我来这里是因为作者没有提供任何支持,因为书上没有联系,或者他的网站甚至是论坛......所以,这就是我来这里的原因。
问题是应用程序是在用户使用应用程序之前预加载3个默认项目。如果仅使用Core Data,它可以正常工作,并通过导入带有默认数据的XML文件来执行预加载,如本书第8章所述。
但是在将iCloud集成到项目之后,本书只是对预加载数据一无所知,甚至没有说明如何将项目中已经存在的XML预加载与iCloud集成。
所以,我想知道这里是否有人知道如何做到这一点。
以下是设置CoraData / iCloud的代码:
func setupCoreData() {
/*// Model Migration
if let _localStoreURL = self.localStoreURL {
CDMigration.shared.migrateStoreIfNecessary(_localStoreURL, destinationModel: self.model)
} */
// Load Local Store
self.setDefaultDataStoreAsInitialStore()
//_ = self.sourceStore
_ = self.localStore
// Load iCloud Store
if let _ = self.iCloudStore {
// self.destroyAlliCloudDataForThisApplication()
// if let path = self.seedStoreURL?.path {
// // Merge existing data with iCloud
// if NSFileManager.defaultManager().fileExistsAtPath(path) {
// if let _ = self.seedStore {
// self.confirmMergeWithiCloud()
// } else {print("Failed to instantiate seed store")}
// } else {print("Failed to find seed store at '\(path)'")}
// } else {print("Failed to prepare seed store path")}
// } else {print("Failed to load iCloud store")}
// Import Default Data
if let _localStoreURL = self.localStoreURL {
CDImporter.shared.checkIfDefaultDataNeedsImporting(_localStoreURL, type: NSSQLiteStoreType)
} else {
print("ERROR getting localStoreURL in \(#function)")}
}
}
请注意,“//加载iCloud商店”中的注释代码与Deep Copy相关,从XML文件导入时不会使用。
那么,任何人都知道如何做到这一点?