我正在开发一个应用程序,用户在其中创建一个具有 3 个字段的事件:
类别、名称、事件。 用户输入后,我有一个保存按钮,可以保存他的数据以供将来参考。然后当他再次打开应用程序时,数据将显示在表格视图中。
我究竟如何在 iOS 上“保存”数据?我知道 NSUserDefaults ,但我很确定这不是这个例子的方式。
到目前为止我做了什么:
我创建了一个带有 Category 、 name 、 event 的“Note”类。
我的保存按钮的代码如下所示:
- (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 <NSCoding> {
NSString *category;
NSString *name;
NSString *event;
}
@property (nonatomic, copy) NSString *category;
@property (nonatomic, copy) NSString *name;
@property (nonatomic, copy) NSString *event;
@end