接收文件时,NSFilePromiseReceiver返回NSURLErrorDomain -1001“(null)”

时间:2018-02-20 20:29:05

标签: objective-c macos cocoa drag-and-drop

我一直在努力更新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始终返回上述错误。

0 个答案:

没有答案