我想允许我的用户存储自定义词组,以便在可编辑的UITableView中显示。
存储这些字符串的快速和肮脏是什么?
我是iPhone开发的新手。我知道Core Data,但不知道如何使用它。如果可能的话,我会远离这个特定项目。 PLIST文件是否可能存在?
示例代码表示赞赏。
答案 0 :(得分:3)
使用NSUserDefaults。 this question中有一些代码。
答案 1 :(得分:2)
如果你想使用plists,这是我认为最快的方法。还有其他方法可以使用NSCoding将数据编码为文件,但是您可能需要一个自定义数据模型类,这更适合保存更多随机内容,这些内容不适合指定的数据模型。另外,正如已经指出的那样,NSUserDefaults也是一个选项
为了保存你的工作:
-(void)applicationWillTerminate:(NSNotification *)notification {
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *filePath = [documentsDirectory stringByAppendingString:@"info.plist"];
NSMutableArray *array = [[NSMutableArray alloc] init];
// Add the objects you want to save to the array here ex: [array addObject:]
[array writeToFile:filePath atomically:YES];
[array release]; }
要恢复已保存的文件:
- (void)viewDidLoad {
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *filePath = [documentsDirectory stringByAppendingString:@"info.plist"];
if ([[NSFileManager defaultManager] fileExistsAtPath:filePath]) {
NSArray *array = [[NSArray alloc] initWithContentsOfFile:filePath];
// Set your vaiables here in the order that you saved them ex. var = [array objectAtIndex:]
[array release];
}
UIApplication *app = [UIApplication sharedApplication];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(applicationWillTerminate:)
name:UIApplicationWillTerminateNotification
object:app];
[super viewDidLoad];}
基本上,当您的应用程序即将退出时,您要创建并保存要保存的对象数组并将其写入文件,当应用程序再次启动时,您将该文件读回数组并根据以下内容分配变量您保存它们的顺序。然后进行设置,以便当您的应用程序发送其UIApplicationWillTerminateNotification时,它会执行您的代码以将您的(可能)修改过的变量保存回文件中。
答案 2 :(得分:1)
你可能想要NSDefaults
;查看User Defaults Programming Topics指南。