我想写一个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