使用AirDrop分享资产库中的video失败

使用AirDrop,我想分享资产库中的video。

关于AirDrop,文件说:

使用此服务时,可以为活动项目提供NSString,NSAttributedString,UIImage,ALAsset和NSURL对象作为数据。 你也可以指定其内容使用资产库scheme的NSURL对象。 您也可以提供包含列出的数据types的NSArray或NSDictionary对象。

我所看到的是,如果活动项目的数据是资产库scheme的NSURL,则传输将失败,并显示以下错误:

发件人kSFOperationEventErrorOccured {错误=“错误域= SFOperation代码= -6 \”传输失败,因为您没有权限读取\ U201cIMG_0119.MP4 \ U201d。\“UserInfo = 0x155f5db0 {NSLocalizedDescription =传输失败,因为你不\ U2019t有权读取\ U201cIMG_0119.MP4 \ U201d。}“; FileIcon =“”; Files =(); SessionID = 9165CCC70A39; }

通过AirDrop成功共享资源库中的video的唯一方法是将文件复制到临时位置,然后将活动项目的数据设置为新的NSURL。 基本上是这样的:

- (id)activityViewController:(UIActivityViewController *)activityViewController itemForActivityType:(NSString *)activityType { ALAssetRepresentation* assetRepresentation = [self.asset defaultRepresentation]; NSString* outputDirectory = [NSString stringWithFormat:@"%@", NSTemporaryDirectory()]; NSString* path = [outputDirectory stringByAppendingPathComponent:[NSString stringWithFormat:@"%@", assetRepresentation.filename]]; NSUInteger size = (NSUInteger)assetRepresentation.size; NSMutableData* data = [NSMutableData dataWithLength:size]; NSUInteger bytesRead = [assetRepresentation getBytes:data.mutableBytes fromOffset:0 length:size error:nil]; if ([data writeToFile:path atomically:YES]) { self.url = [NSURL fileURLWithPath:path]; } return url; } 

有没有人设法从资产库共享video,而不需要将文件复制到临时位置? 我错过了什么,或者这是一个在SDK中的错误?