从filepath获取数据时崩溃

时间:2012-06-13 13:47:44

标签: ios objective-c cocoa-touch crash nsmutabledata

当尝试从路径/ URL(存储在文档文件夹中的视频文件)中获取数据时,应用程序崩溃仅适用于大文件(> 100 MB)。

设备详细信息:iOS(4.3),iPad 1

  1. 网址是完美的(已检查日志)
  2. 文件存在于该路径(已检查路径)
  3. 注意:仅在设备上崩溃。

    以下是应用崩溃的代码:

    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES);
    
    if ([paths count] > 0) 
        {
             filePath = [paths objectAtIndex:0];
             filePath = [filePath stringByAppendingPathComponent:@"Private Documents"];
             filePath = [filePath stringByAppendingPathComponent:@"videos"];
             filePath = [filePath stringByAppendingPathComponent:[NSString stringWithFormat:@"%@.mp4",st]];
        }
    
    NSURL *fileUrl=[NSURL fileURLWithPath:filePath];
    NSMutableData *Data = [NSMutableData dataWithContentsOfURL:fileUrl];  //CRASHES ON THIS LINE
    NSLog(@"Data: %d",[Data length]);
    

    任何评论。

1 个答案:

答案 0 :(得分:3)

好像你的内存不足了。

在设备上,通常可用的内存少得多,模拟器和100MB的内存很多都要存储在RAM中。考虑将可下载文件分成更小的块,如果可以,可以将它们分成几部分处理。

我不认为

  

你需要很长时间才会被杀死。

正如大卫建议的那样,除非你在启动时这样做。