从发布到发布存储NSStrings(或其他数据)的快速而肮脏的方式?

时间:2010-05-17 03:17:51

标签: ios core-data nsstring persistence plist

我想允许我的用户存储自定义词组,以便在可编辑的UITableView中显示。

存储这些字符串的快速和肮脏是什么?

我是iPhone开发的新手。我知道Core Data,但不知道如何使用它。如果可能的话,我会远离这个特定项目。 PLIST文件是否可能存在?

示例代码表示赞赏。

3 个答案:

答案 0 :(得分:3)

使用NSUserDefaultsthis 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指南。