NSUserDefaults
あなたが探しているものではありません。技術的にはそれでうまくいきますが、すべてのレシピ特性のプロパティを持つカスタム クラスを作成し、そのクラスを<NSCoding>
プロトコルに準拠させて、データに変換して記述できるようにする方がよいでしょう。ファイルに。
やったことのない人にとっては複雑に聞こえるかもしれませんが、それほど悪くはありません。
を実装する例を次に示します<NSCoding>
。にデータを保存していることを示す最後の部分は無視してくださいNSUserDefaults
。
NSUserDefaults を使用する代わりにデータを保存するには、この質問をご覧ください。小さなタスクに大量のコードを追加するように見えるかもしれませんが、概念は非常に単純です。
編集:
オブジェクトをデータに変換するに<NSCoding>
は、カスタム クラスに既に実装していると仮定します。
YourClass* someObject;
// do whatever you do to fill the object with data
NSData* data = [NSKeyedArchiver archivedDataWithRootObject:someObject];
/*
Now we create the path to the documents directory for your app
*/
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,
NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
/*
Here we append a unique filename for this object, in this case, 'Some_Recipe'
*/
NSString* filePath = [documentsDirectory stringByAppendingString:@"Some_Recipe"];
/*
Finally, let's write the data to our file
*/
[data writeToFile:filePath atomically:YES];
/*
We're done!
*/