我想寫一個nsdata到我的磁盤上的文件,我有下面的代碼,它不工作,我做錯了什麼?將NSData寫入文件?
Boolean result = [data writeToFile:@"/Users/aryaxt/Desktop/test2.avi" atomically:YES];
test2.avi不存在,我假設將writeToFile將創造對我來說
我想寫一個nsdata到我的磁盤上的文件,我有下面的代碼,它不工作,我做錯了什麼?將NSData寫入文件?
Boolean result = [data writeToFile:@"/Users/aryaxt/Desktop/test2.avi" atomically:YES];
test2.avi不存在,我假設將writeToFile將創造對我來說
嘗試使用:
NSError *error = nil;
[email protected]"/Users/aryaxt/Desktop/test2.avi";
[data writeToFile:path options:NSDataWritingAtomic error:&error];
NSLog(@"Write returned error: %@", [error localizedDescription]);
這會告訴你爲什麼寫失敗。
只有當方法返回「否」時才應檢查「錯誤」。基礎類可能會在錯誤參數中放置其他對象或僞錯誤,甚至垃圾。 (這並不是說他們*做*,但它是程序員合同的一部分,所以要小心。) – 2010-08-29 02:25:46
我有一個側面的問題,有點偏離文檔的主題:討論 此方法可能不適合當寫入可公開訪問的文件。要安全地將數據寫入公共位置,請改爲使用NSFileHandle。有關詳細信息,請參閱在安全編碼指南中確保文件操作。「 那麼我應該還是使用它? – ColdSteel 2015-06-28 13:16:23
」公共可訪問文件「是什麼意思? – ColdSteel 2015-06-28 13:19:05
在附註中,您應該在Objective-C中使用'BOOL',而不是'Boolean'。 – 2010-08-28 21:21:11
嘗試' - [NSData writeToFile:options:error'](http://developer.apple.com/mac/library/documentation/Cocoa/Reference/Foundation/Classes/NSData_Class/Reference/Reference.html#//apple_ref/ doc/uid/20000172-BCIICCHI)並告訴我們報告了什麼錯誤。 – 2010-08-28 21:24:19
(並且請在調試器中驗證數據不是零;也許圖像也是零;-) – 2010-08-28 21:24:45