美文网首页
读取相册中的视频报错 Error Domain=NSCocoaE

读取相册中的视频报错 Error Domain=NSCocoaE

作者: cafei | 来源:发表于2021-07-16 16:56 被阅读0次

    读取相册中的视频报错 :Error Domain=NSCocoaErrorDomain Code=257

    存在这个问题是因为iOS系统13版本系统和13以下的版本系统存在获取视频文件路径差异:
    iOS13及以上:
    file:///private/var/mobile/Containers/Data/PluginKitPlugin/78237EE6-E473-4A7D-B70B-30517BEED40C/tmp/trim.DB7DD483-045E-490C-9685-7BEC69BAB97A.MOV"
    iOS13以下:
    file:///private/var/mobile/Containers/Data/Application/78237EE6-E473-4A7D-B70B-30517BEED40C/tmp/trim.DB7DD483-045E-490C-9685-7BEC69BAB97A.MOV"
    一个是PluginKitPlugin,一个是Application,这就有很大区别了,根据iOS系统的沙盒原理,前者除了本应用其他肯定是无法访问的。

    解决方案:
    通过startAccessingSecurityScopedResource和stopAccessingSecurityScopedResource方法来获取URL的访问权

    代码如下:

    BOOL isAcccessing = [url startAccessingSecurityScopedResource];
    NSError* error = nil;
    NSString *path = [url path];
    NSData *data = [NSData dataWithContentsOfFile:path options: 0 error: &error];
    if(data == nil) {
        NSLog(@"Failed to read file, error %@", error);
    }
    if (isAccessing) {
        [url stopAccessingSecurityScopedResource];
    }
    

    解决方案来源:https://stackoverflow.com/questions/58223929/how-do-i-get-around-nscocoaerrordomain257-when-pulling-a-file-from-the-files-ap

    相关文章

      网友评论

          本文标题:读取相册中的视频报错 Error Domain=NSCocoaE

          本文链接:https://www.haomeiwen.com/subject/unebpltx.html