ios - Remove Core Data from iCloud fails -
i'm trying remove core data icloud using [nspersistentstorecoordinator removeubiquitouscontentandpersistentstoreaturl:options:error:]. strange output:
__93+[nspersistentstorecoordinator removeubiquitouscontentandpersistentstoreaturl:options:error:]_block_invoke(1982): coredata: ubiquity:  unable move content directory new location: file:///private/var/mobile/library/mobile%20documents/<ubiquity_id>/     new: file:///private/var/mobile/library/mobile%20documents/oldubiquitouscontent-mobile~c9439ad0-1e87-4977-9c68-0674f5e2e93b error domain=nscocoaerrordomain code=513 "the operation couldn’t completed. (cocoa error 513.)" userinfo=0x181ab790 {nssourcefilepatherrorkey=/private/var/mobile/library/mobile documents/<ubiquity_id>,      nsuserstringvariant=(     move ), nsfilepath=/private/var/mobile/library/mobile documents/<ubiquity_id>, nsdestinationfilepath=/private/var/mobile/library/mobile documents/oldubiquitouscontent-mobile~c9439ad0-1e87-4977-9c68-0674f5e2e93b, nsunderlyingerror=0x181aab50 "the operation couldn’t completed. operation not permitted"}   what mean?
how avoid it? i'm working on icloud disable/enable feature. details here
update:
  nsdictionary *icloudoptions =   [nsdictionary dictionarywithobjectsandkeys:kicloudcontentnamekey, nspersistentstoreubiquitouscontentnamekey,    icloudurl, nspersistentstoreubiquitouscontenturlkey, nil];  // self.lasticloudstoreurl stores nspersistentstore.url after stack setup   bool result = [nspersistentstorecoordinator removeubiquitouscontentandpersistentstoreaturl:self.lasticloudstoreurl                                                                                      options:icloudoptions                                                                                        error:&error];      
normally (before ios7), take ubiquitouscontenturl value [filemanager urlforubiquitycontaineridentifier:nil];  , pass option called nspersistentstore ubiquitouscontenturlkey, , how icloud know keep of data in icloud account.
in ios 7 , mac os x don't need pass value @ all, , apple call urlforubiquitous containeridentifier automatically under hood you.
so solution looks this:
nsdictionary *options = [nsdictionary dictionarywithobjectsandkeys:kicloudcontentnamekey, nspersistentstoreubiquitouscontentnamekey, nil]; nsurl *storeurl = [nspersistentstore mr_urlforstorename:[magicalrecord defaultstorename]]; bool result = [nspersistentstorecoordinator removeubiquitouscontentandpersistentstoreaturl:storeurl options:options error:&error];   i suggest check wwdc 2013 session 207 things clearly.
Comments
Post a Comment