我正在处理云中的文档... * 将文档添加到云 * 从云中删除该文档 * 不知何故,该文档在几秒钟后重新出现。
这是详细信息:
我像这样创建一个 UIDocument 的实例
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];
}];
然后像这样稍后删除它:
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];
}];
});
现在,尽管执行了上述操作,但文件似乎被删除了一段时间(很短),但有几次,删除的文档会在一秒或几秒后重新出现在云中。(我可以通过另一台设备上的 iCloud 设置或通过发送更新通知的查询来检查这一点)。仅在某些情况下,该文件仍被删除。这是怎么回事?
我应该注意,即使从 Settings->iCloud 中删除文件也会导致上述模式。该文件在几秒钟后神奇地重新出现。时间问题?同步问题?