iPhone ファイル操作系

はじめに

こんにちはビンゴ中西です。
Objective-Cのファイル系の処理の覚え書きです。

ファイル存在チェック

if ([[NSFileManager defaultManager] fileExistsAtPath:ファイルパス]){
  // あるとき
}else{
  // ないとき
}

Documentsディレクトリの取得

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES);
NSLog(@"%@", paths[0]);

配列で返ってくるので、こいつの0番目。

ファイルに書き込み

[@"" writeToFile:ファイルパス atomically:YES encoding:NSUTF8StringEncoding error:nil];

NSStringのメソッドを使う。
エラーハンドリングは今回省略してます。

iPhoneシミュレータの場所

iPhoneのシミュレータの場所は、

~/Library/Application Support/iPhone Simulator

ディレクトリ名にスペースが入っておりターミナルから移動するには、

$ cd ~/Library/Application\ Support/iPhone\ Simulator

とスペースをエスケープしてやらないといけないので大変なので、

$ open ~/Library

としてファインダーで確認してます。

NSMutableArrayをファイルにシリアライズ

self.arr = [[NSMutableArray alloc] init];
[self.arr writeToFile:ファイルパス atomically:YES];

NSStringのときと同じで、writeToFileメソッドを使う。 一緒なので覚えるのが楽。

できたファイルを開いてみると以下のようになっていました。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<array/>
</plist>

NSMutableArrayをシリアライズしたファイルから作成

NSMutableArray *arr = [NSMutableArray arrayWithContentsOfFile:ファイルパス];