2010-03-23 54 views
0

當我寫數據(53MB)到文檔目錄,數據是不是我直接通過應用程序支持path.i編碼這樣寫檢查,文件目錄問題?

- (BOOL)writeApplicationData:(NSData *)data toFile:(NSString *)fileName 
{ 
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *documentsDirectory = [paths objectAtIndex:0]; 
if (!documentsDirectory) { 
    NSLog(@"Documents directory not found!"); 
    return NO; 
} 
NSString *appFile = [documentsDirectory stringByAppendingPathComponent:fileName]; 
return ([data writeToFile:appFile atomically:YES]); 

} 它工作正常,但是當我閱讀數據使用follwing代碼,數據爲空,anyhelp請問?

- (NSData *)applicationDataFromFile:(NSString *)fileName { 
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *documentsDirectory = [paths objectAtIndex:0]; 
NSString *appFile = [documentsDirectory stringByAppendingPathComponent:fileName]; 
NSData *myData = [[[NSData alloc] initWithContentsOfFile:appFile] autorelease]; 
return myData; 

}

回答

1

的代碼爲我工作(上一個小的下載)。

有些想法,你是否通過網絡下載53MB?也許你想在它完成之前閱讀它?上寫入文件中的「原子」標誌說:

如果是,將數據寫入到備份文件,然後,假設發生,在沒有錯誤的備份文件重命名爲通過路徑指定的名稱;否則,數據直接寫入路徑。

如果您以異步方式下載並且無法使用部分結果,則可能需要等待它完成。否則,您可以自動設置:NO並讀取部分結果。