Как сохранить данные в приложении для iOS?
Я разрабатываю приложение, в котором пользователь создает событие, которое имеет 3 поля:
Категория, имя, событие. После того, как пользователь введет свою запись, у меня есть кнопка сохранения, которая сохранит его данные для дальнейшего использования. Затем, когда он снова откроет приложение, данные будут показаны в виде таблицы.
Как именно яспасти" данные на iOS? Я знаю о NSUserDefaults, но я уверен, что это не тот путь для этого примера.
Что я сделал до сих пор:
Я создалЗаметка" класс с категорией, именем, событием.
Код для моей кнопки сохранения выглядит следующим образом:
- (IBAction)save:(id)sender {
//creating a new "note" object
Note *newNote = [[Note alloc]init];
newNote.category = categoryField.text;
newNote.name = nameField.text;
newNote.event = eventField.text;
// do whatever you do to fill the object with data
NSData* data = [NSKeyedArchiver archivedDataWithRootObject:newNote];
/*
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, 'Note'
*/
NSString* filePath = [documentsDirectory stringByAppendingString:@"Note"];
/*
Finally, let's write the data to our file
*/
[data writeToFile:filePath atomically:YES];
/*
We're done!
*/
}
Это правильный способ сохранить событие? Как я могу получить то, что я написал сейчас?
Во-вторых, если я выполню этот код еще раз, я перезапишу данные или создаю новую запись?
Я хотел бы видеть, как я могу сделать новую запись каждый раз.
Также я хотел бы удалить событие из таблицы, которую я им представляю, поэтому я хотел бы посмотреть, как будет работать удаление.
Мой "Заметка" объект выглядит так:
@interface Note : NSObject {
NSString *category;
NSString *name;
NSString *event;
}
@property (nonatomic, copy) NSString *category;
@property (nonatomic, copy) NSString *name;
@property (nonatomic, copy) NSString *event;
@end