2012-06-13 58 views
0

僅當大文件(> 100 MB)嘗試從路徑/ URL(存儲在文檔文件夾中的視頻文件)中獲取數據時,應用程序崩潰。從文件路徑獲取數據時崩潰

設備詳細信息:iOS版(4.3),iPad的1

  1. 網址是完美的(經過日誌)
  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]); 

任何評論。

+0

你能告訴我fileURL –

+0

的聲明感謝關注詹姆斯。我用更多的代碼編輯問題。 – iDilip

+0

最重要的是:崩潰說什麼? –

回答

3

看來你的內存不足了。

在設備上,通常有少得多的內存可用,您的模擬器和100MB是很多要存儲在RAM中。考慮將可下載的文件拆分爲更小的塊,並且如果可以的話,將它們分塊處理。

我不認爲

你正在採取的很長一段時間和應用程序就會被殺死。

大衛暗示,除非你是在啓動時這樣做。

+0

可能是你是對的,但我需要做到這一點,下面的步驟是:從文件 1.讀取數據//崩潰 2.將數據傳遞給解密文件 3.然後創建一個從解密數據 4. MP4文件然後將URL傳遞給MPMoviePlayerControll玩 – iDilip

+0

當我在後臺執行此操作時,我rcv:收到內存警告。級別= 1,收到內存警告。 Level = 2然後崩潰 – iDilip

+1

這證實了你的問題是一個內存問題,而不是一個懸而未決的問題。 –