構造体またはオブジェクトを作成してファイルに保存したいのですが、それを行うのに混乱しています。手順を示していますか?
writeToFile メソッドを使用しようとしましたが、さまざまなフィールド (name、surname、bool フィールドなど) がある構造化ファイルを書きたいので、これは良い解決策ではありません。
データベースを使いたくない
構造体またはオブジェクトを作成してファイルに保存したいのですが、それを行うのに混乱しています。手順を示していますか?
writeToFile メソッドを使用しようとしましたが、さまざまなフィールド (name、surname、bool フィールドなど) がある構造化ファイルを書きたいので、これは良い解決策ではありません。
データベースを使いたくない
おそらくやりたいことは、NSDictionary または NSMutabledictionary (キーと値のペアを含む) を作成し、それをファイルに書き出すことです。これは簡単で汚いサンプルです。
最初に NSDictionary を定義します...
@property (nonatomic, strong) NSDictionary *someInfo;
次に、次の関数がファイルを探します。ファイルが存在する場合は、それを NSDictionary に読み込みます。ファイルが存在しない場合は、ファイルを作成して書き出します。作成後に値とキーを変更できるため、おそらく NSMutabledictionary を使用することをお勧めします。また、文字列 (または nill) 以外の値を保存する場合も注意してください。この関数は ViewDidLoad から呼び出すことができます...
- (void)readDictionary {
// check to see if the file exist
NSString *docDir = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)
objectAtIndex:0];
NSString *docFilePath = [docDir stringByAppendingPathComponent:@"saveinfo.plist"];
NSFileManager *filemgr;
filemgr = [NSFileManager defaultManager];
if ([filemgr fileExistsAtPath:docFilePath]) {
_someInfo = [[NSDictionary alloc] initWithContentsOfFile:docFilePath];
} else {
_someInfo = [NSDictionary dictionaryWithObjectsAndKeys:@"John", @"firstName",
@"Smith", @"lastName", nil];
if (![_someInfo writeToFile:docFilePath atomically:YES]) {
NSLog(@"Errro writing plist");
}
}
//NSLog(@"%@", _someInfo);
}