将数据写入文件Cocoa?

时间:2011-08-22 22:47:38

标签: cocoa encryption nsdata writetofile

我需要使用writeToFile:方法将数据(加密的)写入文件。但是,我说:

NSData *encryptedData = [data AES256EncryptWithKey:key];

我将encryptedData写入文件:

[encryptedData writeToFile:@"file.txt" automatically:YES];

由于某种原因,这不会将数据写入“file.txt”。这是一个非常简单的问题,我知道我缺少一些超级基本的东西。如果file.txt实际上不存在,则必须创建它。

2 个答案:

答案 0 :(得分:2)

这可能与Cocoa或NSData无关。

在Unix(如Mac OS X)上,以/开头的路径是绝对路径。以~开头的路径相对于当前用户的主目录。其他任何内容(例如file.txt)都与当前目录相关。从Xcode运行时,这是可执行文件的路径(编译器的输出路径)。

因此,要将其写入桌面,那将是:

[encryptedData writeToFile:@"~/Desktop/file.txt" atomically:YES];

对于文档文件夹,即:

[encryptedData writeToFile:@"~/Documents/file.txt" atomically:YES];

不要忘记路径也区分大小写。

答案 1 :(得分:1)

- (BOOL)writeToFile:(NSString *)path atomically:(BOOL)flag

返回一个布尔值,表示它是否成功。我从那里开始,如果你看到了YES,那么文件就会成功写到某处。

如果这不起作用,那么我会仔细检查您尝试编码的对象是否支持NSCoding协议。如果你的对象不支持NSCoding,请查看this博文,了解一个简单的添加方法。

它的“原子”不是“自动”:)

相关问题