2
如何在不關閉並重新打開文檔的情況下使用打開的UIDocument重命名文檔文件?關閉(保存),移動並重新打開文檔需要很長時間。重命名文檔而不關閉UIDocument
我有以下的代碼,將文件移動:
NSFileCoordinator* fileCoordinator = [[NSFileCoordinator alloc] initWithFilePresenter:nil];
[fileCoordinator coordinateWritingItemAtURL:oldPath
options:NSFileCoordinatorWritingForMoving
writingItemAtURL:newPath
options:NSFileCoordinatorWritingForReplacing
error:&coordinatorError
byAccessor:^(NSURL *newURL1, NSURL *newURL2) {
// Rename the file.
NSFileManager* fileManager = [NSFileManager defaultManager];
[fileCoordinator itemAtURL:oldPath willMoveToURL:newPath];
[fileManager moveItemAtURL:newURL1 toURL:newURL2 error:nil];
[fileCoordinator itemAtURL:oldPath didMoveToURL:newPath];
}];
根據文檔UIDocument
工具presentedItemDidMoveToURL:
更新其fileURL
(見https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIDocument_Class/)
然而,當上面的代碼被稱爲與文檔打開,它掛起,大概等待鎖定oldPath
(-[NSFileCoordinator(NSPrivate) _blockOnAccessClaim:]
)。如果沒有生活,工作正常UIDocument
。
相關,最多的回答表明,關閉並重新打開UIDocument
:What is the proper way to move a UIDocument to a new location on the file-system