Как прочитать конфликтующий UIDocument из unresolvedConflictVersionsOfItemAtURL:
Когда конфликт возникает в UIDocument, я могу получить все конфликтующие версии, вызвав unresolvedConflictVersionsOfItemAtURL:
на NSFileVersion
но как я могу получить UIDocument (снимок) этих версий?
Я хочу зациклить все версии и объединить это сам.
Обновлено Я сталкивался с этим Как я могу объединить конфликтующие UIDocument в iCloud? и попытаться сделать это таким образом, но я не считаю его правильным, потому что открытый UIDocument является асинхронной операцией. Как правильно это сделать?
NSFileVersion *currentVersion = [NSFileVersion currentVersionOfItemAtURL:senderDocument.fileURL];
NSArray *conflictedVersions = [NSFileVersion unresolvedConflictVersionsOfItemAtURL:senderDocument.fileURL];
RecentDocument *currentDocument = [[RecentDocument alloc] initWithFileURL:currentVersion.URL];
[currentDocument openWithCompletionHandler:^(BOOL success) {
if (!success) {
NSLog(@"Failed to open");
return ;
}
for (NSFileVersion *version in conflictedVersions) {
RecentDocument *conflictedDocument = [[RecentDocument alloc] initWithFileURL:version.URL];
[conflictedDocument openWithCompletionHandler:^(BOOL success) {
if (!success) {
NSLog(@"Failed to open");
return ;
}
}];
}
}];
1 ответ
Вместо вызова openWithCompletionHandler вы хотите сделать что-то вроде:
RecentDocument * thisDoc = [[RecentDocument alloc] initWithFileURL:url];
NSError* innerReadError;
[thisDoc readFromURL:url error:&innerReadError];
Поэтому поменяйте местами openWithCompletionHandler с readFromURL, и вы сможете сразу получить доступ к своему документу, чтобы разрешить конфликт.