その本は次のように述べています。
「アンサンブル識別子は、デバイス間で店舗を照合するために使用されます。これがアンサンブル内の各店舗で同じであることが重要です。」</p>
let ensembleFileSystem = CDEICloudFileSystem(ubiquityContainerIdentifier: "???")
これはすべてのユーザーに対して一意である必要がありますか? または私のアプリケーションのためだけですか?
Ensembles のセットアップ方法のSwiftバージョンを持っている人がいれば、それは素晴らしいことです。
私がこれまでに持っているものは、これですべてですか?
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
let ensembleFileSystem = CDEICloudFileSystem(ubiquityContainerIdentifier: "???")
let modelURL = NSBundle.mainBundle().URLForResource("DataModel", withExtension: "momd")!
let url = applicationDocumentsDirectory.URLByAppendingPathComponent("SingleViewCoreData.sqlite")
let ensemble = CDEPersistentStoreEnsemble(ensembleIdentifier: "mainstore", persistentStoreURL: url, managedObjectModelURL: modelURL, cloudFileSystem: ensembleFileSystem!)
if !ensemble.leeched {
ensemble.leechPersistentStoreWithCompletion { (error) -> Void in
if error != nil {
print("cannot leech")
print(error!.localizedDescription)
}
}
}
NSNotificationCenter.defaultCenter().addObserver(self, selector: "syncWithCompletion:", name: CDEMonitoredManagedObjectContextDidSaveNotification, object: nil)
NSNotificationCenter.defaultCenter().addObserver(self, selector: "syncWithCompletion:", name: CDEICloudFileSystemDidDownloadFilesNotification, object: nil)
return true
}
func syncWithCompletion(notification:NSNotification) {
print("synced \(notification)")
managedObjectContext.mergeChangesFromContextDidSaveNotification(notification)
}
このエラーログを取得しています
User is not logged into iCloud
当たり前のようにログインしているにも関わらず
print(NSFileManager.defaultManager().ubiquityIdentityToken)
nilでないこと