Ios 如何从UnsolvedConflictVersionsofItemAttribute中读取冲突的UIDocument:
当UIDocument中发生冲突时,我可以通过调用Ios 如何从UnsolvedConflictVersionsofItemAttribute中读取冲突的UIDocument:,ios,merge,icloud,conflict,uidocument,Ios,Merge,Icloud,Conflict,Uidocument,当UIDocument中发生冲突时,我可以通过调用NSFileVersion上的unsolvedconflictVersionsofItemAttribute:来获取所有冲突版本,但我如何获取该版本的UIDocument(快照) 我想循环所有版本并自己合并 已更新 我曾经遇到过这种情况,并尝试以这种方式进行操作,但我认为它不正确,因为OpenUIDocument是异步操作。正确的方法是什么 NSFileVersion *currentVersion = [NSFileVersion cu
NSFileVersion
上的unsolvedconflictVersionsofItemAttribute:
来获取所有冲突版本,但我如何获取该版本的UIDocument(快照)
我想循环所有版本并自己合并
已更新
我曾经遇到过这种情况,并尝试以这种方式进行操作,但我认为它不正确,因为OpenUIDocument是异步操作。正确的方法是什么
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 ;
}
}];
}
}];
您不需要调用openWithCompletionHandler,而是希望按照以下方式执行操作:
RecentDocument * thisDoc = [[RecentDocument alloc] initWithFileURL:url];
NSError* innerReadError;
[thisDoc readFromURL:url error:&innerReadError];
因此,将openWithCompletionHandler与readFromURL交换,您应该能够立即访问文档以解决冲突
UIDocument
异步打开与此有什么关系NSFileVersion
是查找冲突版本的方式,UIDocument
是打开冲突版本的方式(如果需要)。如果您想了解更多详细信息,请参阅示例代码中的.replicate,我得到了所有NSFileVersion冲突,但要读取其内容(要自己合并数据),我必须打开它,这是一种异步操作。在链接中,它将教您如何手动显示冲突,而这并不是问题的答案。