1

大きなファイル(> 100 MB)の場合にのみ、パス/ URL(ドキュメントフォルダーに保存されているビデオファイル)からデータをフェッチしようとすると、アプリがクラッシュします。

デバイスの詳細:iOS(4.3)、iPad 1

  1. URLは完璧です(チェックされたログ)
  2. そのパスにファイルが存在します(チェックされたパス)

注:デバイスでのみクラッシュします。

以下は、アプリがクラッシュするコードです。

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]);

コメント。

4

1 に答える 1

3

メモリが不足しているようです。

デバイスでは、通常、シミュレーターよりもはるかに少ないメモリが使用可能であり、100MB は RAM に保存するのに大量です。ダウンロード可能なファイルを小さなチャンクに分割し、可能であれば分割して処理することを検討してください。

思わない

時間がかかりすぎて、アプリが強制終了されます。

起動時にこれを行っていない限り、Davidが示唆するように。

于 2012-06-13T14:05:18.353 に答える