我在将操作粘贴到文件提供程序扩展中的容器时遇到问题。
如果我将复制的图像或文本粘贴到文件应用程序 -> 我的应用程序 -> 任何文件夹中,则无法读取 fileURL 处的文件(因此无法上传到我的服务器也无法存储在本地)。
- (void)importDocumentAtURL:(NSURL *)fileURL
toParentItemIdentifier:(NSFileProviderItemIdentifier)parentItemIdentifier
completionHandler:(void (^)(NSFileProviderItem _Nullable importedDocumentItem, NSError * _Nullable error))completionHandler
{
NSError *readError = nil;
NSData *fileData = [NSData dataWithContentsOfURL:fileURL options:NSDataReadingMappedAlways error:&readError];
NSString *readErrorMessage = readError.localizedDescription;
NSURL *myFileURL = [NSFileProviderManager.defaultManager.documentStorageURL URLByAppendingPathComponent:@"temp.dat"];
NSError *copyError = nil;
BOOL copyResult = [_fileManager copyItemAtURL:fileURL toURL:myFileURL error:©Error];
NSString *copyErrorMessage = copyError.localizedDescription;
...
readErrorMessage 和 copyErrorMessage 都是:
无法打开文件“text.txt”,因为您无权查看它。
我在这里做错了什么?
谢谢。
UPD:从我的容器、iCloud 容器复制的任何文件以及从系统剪贴板中的文本/图像/其他数据生成的合成文件都会发生这种情况。