1

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

NSData *encryptedData = [data AES256EncryptWithKey:key];

我通过以下方式将 encryptedData 写入文件:

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

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

4

2 回答 2

2

这可能与 Cocoa 或NSData.

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

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

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

对于文档文件夹,这将是:

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

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

于 2011-08-22T22:51:15.207 回答
1
- (BOOL)writeToFile:(NSString *)path atomically:(BOOL)flag

返回一个布尔值来表示它是否成功。我将从那里开始,如果您看到“是”,则该文件已成功写入某处。

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

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

于 2011-08-22T23:18:05.587 回答