零星无法读取文件错误 - 文件不存在

问题描述:

我偶尔得到一个错误零星无法读取文件错误 - 文件不存在

***终止应用程序由于未捕获的异常“NSInvalidArgumentException”,理由是:“在文件无法读取文件:/// VAR /移动/应用/ D743821C-6F34-4E97-8FBA-D7EAD6738E38 /文档/ contacts.zip

***第一掷调用堆栈: (0x2ef1ef83 0x39799ccf 0x2eb5f7c3 0x2eb5f2dd 0x39c8181f 0x39c87677 0x2eb5f289 0x2eb9897f 0x172cb9 0x17bac3 0x5b769 0x160d99 0x69f2d 0x698cb 0x1709c7 0x17a9a3 0x39c81833 0x39c88ad7 0x39c88d29 0x39dc3bd3 0x39dc3a98) libC++ abi.dylib:以NSException类型的未捕获异常终止

程序在行

Info.uploadTask = [self.session uploadTaskWithRequest:request fromFile:url]; 

翻倒当我在设备容器我看到该文件不存在的样子。

我不明白

  1. 为什么在道路检查存在,如果该文件不存在
  2. 为什么程序,即使失败,虽然它是在一个try catch块

    NSString *path = file.myPath; 
    if ([[NSFileManager defaultManager] fileExistsAtPath:path]) { 
        @try { 
         NSURL *url = [NSURL fileURLWithPath:path]; 
         Info.uploadTask = [self.session uploadTaskWithRequest:request fromFile:url]; 
        } 
        @catch (NSException *exception) { 
         BLog("error Reading file:%@",path); 
         return; 
        } 
    } else { 
        BLog(@"file not found:%@",path); 
        return; 
    } 
    
  3. 通行证
+1

您是否曾设法为此找到解决方案?我们正在经历类似的行为。 – 2015-09-28 07:45:12

+0

这个问题似乎解决了。 – 2015-10-23 08:34:33

+0

我也遇到同样的问题,如果有人发现一个修复,请分享 – IdoT 2015-11-26 12:12:21

所以我有完全相同的问题 - NSURLSession由于某种原因无法读取文件。但是,我可以使用您拥有的相同代码捕获异常。我为方便创建了一个类别:

@implementation NSURLSession (DMAdditions) 
- (NSURLSessionUploadTask * _Nullable)crashFreeUploadTaskWithRequest:(NSURLRequest *)request fromFile:(NSURL *)fileURL { 
    @try { 
    return [self uploadTaskWithRequest:request fromFile:fileURL]; 
    } 
    @catch (NSException *exception) { 
    NSLog(@"We crashed: %@", exception); 
    return nil; 
    } 
} 
@end 
+0

我不能标记这是正确的答案,因为我不能再现 – 2016-02-02 16:52:35

+0

它很容易使其崩溃,只是给它一个不好的网址。它会因相同的错误而崩溃。 – almas 2016-02-02 18:17:39