如何在iOS中持久存储信息?

时间:2014-01-29 15:00:57

标签: ios

我有一个应用程序,可以在tableview中加载国家/地区列表。第一次下载应用程序时,它应显示整个列表,当用户选择应添加到阵列的国家/地区时。我没有得到如何跟踪用户第一次选择的国家数量,以及下次每当用户打开应用程序时我应该只显示所选国家/地区。我可以用什么方式实现这个?当我在网上搜索了解静态但无法实现它时。

我是iPhone开发的新手。任何帮助将不胜感激。

3 个答案:

答案 0 :(得分:1)

您可以使用不同的选项来持久存储信息:Core Data,SQLite等。在这种情况下使用的简单方法是NSUserDefault。如果将所选国家/地区的列表保留在NSArray中,则可以按如下方式存储和检索此数组:

//To set your array
[[NSUserDefaults standardUserDefaults]setObject:(NSArray *)yourArray forKey:@"userSelection"];
[[NSUserDefaults standardUserDefaults]synchronize];

//To retrieve your array
NSArray *myArray = [[NSUserDefaults standardUserDefaults]objectForKey:@"userSelection"];

要使用此选项,您的NSArray必须是属性列表 - 这是Apple文档,用于了解property list is。如果您想存储其他类型的对象,您应该查看不同的解决方案(.e.g核心数据)。

答案 1 :(得分:0)

您需要持久存储选择。与静态变量无关,静态变量在退出应用程序时会被取消。以NSUserPreferences为例,查看存储用户偏好的一种方法。

答案 2 :(得分:0)

您要找的是persistent storage

persistent storageiOS的各种方式是: -

  1. Property Lists
  2. SQLite
  3. Core Data
  4. User Defaults (NSUserDefaults)
  5. 取决于种类和&要存储的数据大小,可以使用以下其中一种。

    如果您的要求表明您只需坚持NSArray,那么最好选择Property ListsNSUser Defaults

    阅读&撰写Property List您可以找到文档in Apple Docs

    对于NSUser Defaults用法,您可以找到一个好的教程here