1

writeToFile:(暗号化された) データをファイルに書き込む際にメソッドを使用する必要があり ます。しかし、私が持っているとしましょう:

NSData *encryptedData = [data AES256EncryptWithKey:key];

そして、次の方法で encryptedData をファイルに書き込みます。

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

これは何らかの理由で「file.txt」にデータを書き込みません。これは非常に単純な質問であり、非常に基本的なものが欠けていることはわかっています。file.txt が実際に存在しない場合は、作成する必要があります。

4

2 に答える 2

2

これはおそらくココアや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

成功したかどうかを示すブール値を返します。そこから始めます。YES と表示された場合、ファイルはどこかに正常に書き込まれました。

それがうまくいかない場合は、エンコードしようとしているオブジェクトがNSCodingプロトコルをサポートしているかどうかを再確認します。NSCoding がサポートされていないことに反対する場合は、このブログ投稿を参照して、簡単に追加する方法を確認してください。

また、「自動的に」ではなく「原子的に」:)

于 2011-08-22T23:18:05.587 に答える