私はXcode 4で作業しています。テストを実行するたびにiphone 4アプリケーションでファイルに行を追加したいと思います。これを行うための速い方法はありますか?もしそうなら、正確にどこでiphoneディレクトリ階層内に書き込むことが許されていますか?Xcode 4のファイルにどのように追加することができますか?ファイルはどこに配置する必要がありますか?
ありがとうございました。
私はXcode 4で作業しています。テストを実行するたびにiphone 4アプリケーションでファイルに行を追加したいと思います。これを行うための速い方法はありますか?もしそうなら、正確にどこでiphoneディレクトリ階層内に書き込むことが許されていますか?Xcode 4のファイルにどのように追加することができますか?ファイルはどこに配置する必要がありますか?
ありがとうございました。
iPhoneアプリケーションのバンドル内に書き込むことはできません。これは、暗号化を破るためです。 Documents
ディレクトリ、または<apphome>/Library
の下のどこかに書き込むことができます。 Library
の下にファイルを追加することが優れている、あなたはInfo.plist
にUIFileSharingEnabled
を追加する場合Documents
以来
は、iTunesのユーザーのために目立つことがあり、これは、アプリケーションにプライベートファイルです。それはテスト中に大したことではありません。アップルの関連ドキュメント:Technical Q&A QA1699: Storing Private Data、A Few Important Application Directories
あなたはファイルにテキストを追加するiPhoneアプリケーションでこのコードを使用することができます。
// get path to Documents/somefile.txt
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *path = [documentsDirectory stringByAppendingPathComponent:@"somefile.txt"];
// create if needed
if (![[NSFileManager defaultManager] fileExistsAtPath:path]){
[[NSData data] writeToFile:path atomically:YES];
}
// append
NSFileHandle *handle = [NSFileHandle fileHandleForWritingAtPath:path];
[handle truncateFileAtOffset:[handle seekToEndOfFile]];
[handle writeData:[@"line of text\n" dataUsingEncoding:NSUTF8StringEncoding]];
あなたは今まで戻って、このデータを読み取る必要がありますか?私は配列のアーカイブのようなものを提案しようとしていましたが、それは成長を続け、最終的には新しいエントリーを追加するためにすべてを読み込むと、愚かな量のメモリーを使うことができます。 – Katfish