代码之家  ›  专栏  ›  技术社区  ›  vodkhang

我可以使用NSUserDefaults保存用户的草稿吗?

  •  0
  • vodkhang  · 技术社区  · 14 年前

    我试图保存草案使用NSUserDefaults,但我不知道是否是正确的地方保存数据,而不是用户的喜好。

    数据结构为NSUserDefaults->Draft NSDictionary->key-NSArray。我有很多草稿(就像电子邮件草稿一样)。草稿字典包含一个保存为键的日期字符串和NSArray中的字符串文件路径。保存过程目前没有任何问题。但是因为在 NSUserDefaults doc ,他们说:

    匹配用户首选项.to匹配用户首选项。

    你建议我任何简单的解决方案,可以做到这一点,而不必代码太多。我知道有CoreData,但我知道的不多。学习和实施容易吗?

    我不知道这是否会影响一些内存问题,但我希望一个用户可以保存少于100个草稿。

    1 回复  |  直到 14 年前
        1
  •  2
  •   TechZen    14 年前

    您的数据结构似乎过于复杂。您只需将文件路径数组直接保存到用户默认值。

    NSUserDefaults *defaults=[NSUserDefaults standardUserDefaults];
    NSArray *draftPaths=[NSArray arrayWithObjects:filePath1, filePath2,nil];
    [defaults setObject:draftPaths forKey:@"DraftPaths_Key"];
    // to retrieve
    NSArray *previousDraftPaths=[defaults objectForKey:@"DraftPaths_Key"];
    

    您不想将文件保存到缓存文件夹中,因为如果空间紧张,系统可以删除缓存。而是将它们保存到 /Library

    NSArray *libraryPaths=NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES);
    NSString *libPath=[libraryPaths objectAtIndex:0];