我一直在努力更新performDragOperation
方法以使用NSFilePromiseReceiver
。但是,每次拖动文件时,阅读器都会返回
错误域= NSURLErrorDomain代码= -1001“(null)”
以下是代码:
NSString *tempPath = [NSTemporaryDirectory() stringByAppendingPathComponent:[[NSUUID UUID] UUIDString]];
NSURL *tempURL = [NSURL fileURLWithPath:tempPath isDirectory:true];
NSPasteboard *pasteboard = [sender draggingPasteboard];
NSArray *filePromises = [pasteboard readObjectsForClasses:@[[NSFilePromiseReceiver class]] options:@{}];
// promised files have to be created in a specific directory
if ([[NSFileManager defaultManager] createDirectoryAtPath:tempPath withIntermediateDirectories:YES attributes:nil error:nil] == false)
{
return false;
}
if (filePromises.count > 0)
{
for (NSFilePromiseReceiver *fileReceiver in filePromises) {
[fileReceiver receivePromisedFilesAtDestination:tempURL options:@{} operationQueue:[NSOperationQueue new] reader:^(NSURL * _Nonnull fileURL, NSError * _Nullable errorOrNil) {
if (errorOrNil) {
NSLog(@"Error: %@", errorOrNil);
NSLog(@"URL: %@", tempURL);
return;
}
NSLog(@"fileURL: %@", fileURL);
}];
}
return YES;
}
else
{
return NO;
}
我可以看到创建了目录并生成了文件,但errorOrNil
始终返回上述错误。