Sto lavorando con documenti nel cloud ... * Aggiungi un documento al cloud * Elimina quel documento dal cloud * In qualche modo quel documento riappare alcuni secondi dopo.UIDocument cancellato spesso dal cloud
Ecco i dettagli:
creo un'istanza di UIDocument come questo
NSURL *ubiq = [[NSFileManager defaultManager] URLForUbiquityContainerIdentifier:nil];
NSURL *ubiquitousPackage = [[ubiq URLByAppendingPathComponent:@"Documents"] URLByAppendingPathComponent:@"somenewfilename"];
MyDoc* docTemp = [[MyDoc alloc] initWithFileURL:ubiquitousPackage];
docTemp.mapContent = [NSString stringWithString:self.currentdocument.mapContent];
[docTemp saveToURL:[docTemp fileURL]
forSaveOperation:UIDocumentSaveForCreating
completionHandler:^(BOOL success) {
if (success) {
DLog(@"New document %@ saved/added: %@", newFilename, docTemp);
}
else {
DLog(@"Failed saving new document: %@", newFilename);
}
[docTemp release];
}];
Quindi eliminare in un secondo momento come questo:
NSURL* fileURL = self.currentdocument.fileURL;
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^(void) {
NSFileCoordinator* fileCoordinator = [[NSFileCoordinator alloc] initWithFilePresenter:nil];
NSError* error = nil;
[fileCoordinator coordinateWritingItemAtURL:fileURL options:NSFileCoordinatorWritingForDeleting error:&error byAccessor:^(NSURL* writingURL) {
if (error != nil) {
DLog(@"Error with %@! %@", fileURL, error);
return;
}
DLog(@"Got writingURL: %@", writingURL);
NSFileManager* fileManager = [[NSFileManager alloc] init];
if ([fileManager removeItemAtURL:writingURL error:nil]) {
DLog(@"Deleted %@!", writingURL);
}
else {
DLog(@"ERROR Failed deleting %@!", self.currentdocument);
}
[fileManager release];
[fileCoordinator release];
}];
});
Ora, nonostante fare quanto sopra, sembra che il file viene eliminato per un (breve) mentre, ma in diverse occasioni il documento eliminato riappare nel cloud uno o pochi secondi dopo. (Posso verificarlo tramite le impostazioni di iCloud su un altro dispositivo o tramite una query che invia notifiche sugli aggiornamenti). Solo in alcune occasioni il file rimane cancellato. Cosa sta succedendo?
Devo notare che anche l'eliminazione del file da Impostazioni-> iCloud causerà il modello sopra. Il file riappare magicamente pochi secondi dopo. Problemi di temporizzazione? Sincronizzare i problemi?
Hai scoperto come risolvere questo? – Bongeh
Penso che il mio problema fosse che tenevo sempre tutti i documenti nella mia lista (ho un'interfaccia con tutti i documenti nel cloud ...) aperti. Ah, per farla breve non devi mantenere i file aperti a meno che non li apri in una sorta di interfaccia di editor o simile. Finché un documento è aperto, suppongo che non avrebbe senso cancellarlo. Ho cambiato la mia app per aprire solo i documenti quando l'utente li tocca. Penso che questo abbia risolto il mio problema. – Jonny
okay, grazie, questo potrebbe aiutarmi a capire perché i miei documenti non sono stati trasferiti! forse ho bisogno di chiuderli :) – Bongeh