プロパティリスト(plist)にデータを書き込みます。
#import "ViewController.h"
@interface ViewController ()
@property (weak, nonatomic) IBOutlet UILabel *lbString;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
// ホームディレクトリを取得
NSString *homeDir = NSHomeDirectory();
// 書き込みたいplistのパスを作成
NSString *filePath = [homeDir stringByAppendingPathComponent:@"sample.plist"];
// 書き込むデータを作成
NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:
@"Snoopy", @"name",
[NSNumber numberWithInt:3], @"age",
nil];
// 書き込み
BOOL result = [dict writeToFile:filePath atomically:YES];
if (!result) {
NSLog(@"ファイルの書き込みに失敗");
self.lbString.text = @"ファイルの書き込みに失敗";
}
NSLog(@"ファイルの書き込みが完了しました");
self.lbString.text = @"ファイルの書き込みが完了しました";
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end
アプリ領域の構成
アプリで参照できるのはアプリごとに割り振られたホームディレクトリに限られており、/Applications/<GUID>/以下がアプリ領域となります。
(ホームディレクトリはNSHomeDirectory()関数で確認できます)
ホームディレクトリ以下はさらにいくつかのディレクトリに分かれていて、それぞれ目的が異なります。
ディレクトリ説明
/アプリ名.app メインバンドル。
アプリ自体のリソースファイルを保存する
/Documents
アーカイブなどファイル単位で永続化する場合に使用
/Library/Caches キャッシュ領域
/Library/Preferences
アプリケーションの設定情報を保存するディレクトリ。NSUserDefaultsで使用
/tmp
一時ファイル保存場所
アプリ名の取得方法
NSLog(@"AppName: %@", [[NSBundle mainBundle]
bundlePath]);
ホームディレクトリ以下へのアクセス
NSArray *paths = NSSearchPathForDirectoriesInDomains([ディレクトリタイプ],
NSUserDomainMask, YES);
ディレクトリタイプに定数を渡すことで、上記のそれぞれのディレクトリパスを得ることができます。
NSDocumentDirectory
NSCachesDirectory
GitHub PlistWrite
コメントをお書きください