在iphone上本地存储数据

Tom*_*myG 23 database iphone xcode uitableview ios

我正在构建一个应用程序,我想在设备上本地存储用户信息,而不使用任何服务器数据库 - 但设备端的所有内容.我希望存储特定的用户位置并将其显示在表格视图中,因此即使用户稍后启动应用程序 - 我也可以提取历史记录并使用过去的位置提供历史记录表.基本上是本地数据库的读/写功能.

现在,我知道之前有很多这样的问题,但我找不到一个能在没有外部数据库的情况下在本地保存数据的问题.例如,我不确定使用Core Data是正确和最简单的事情.

希望得到任何建议.

Sr.*_*hie 64

对于简单数据,您应该使用NSUserDefaults.CoreData非常酷,但主要用于存储数据库结构,并引入复杂性(但我喜欢它:)).如果你只需要存储String,Array等(基本上是prefs),你可以使用NSUserDefaults:

例如:

NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];  //load NSUserDefaults
NSArray *fakeFavs = [[ NSArray alloc] initWithObjects:@"2",@"4", @"100", nil];  //declare array to be stored in NSUserDefaults
[prefs setObject:fakeFavs forKey:@"favourites"];  //set the prev Array for key value "favourites"
Run Code Online (Sandbox Code Playgroud)

  • NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults]; NSMutableArray *favorites = [prefs arrayForKey:@"favourites"]; (12认同)

Pab*_*ruz 10

您基本上有两个存储数据的选项:

  1. CoreData(如果您打算使用较新版本的iOS)
  2. SQLite(支持任何版本的SDK)

CoreData使用SQLite,它的API使用起来有点简单(你不需要知道SQL或编写很多函数来读写你的数据).

SQLite API仍然是一个很好的选择,因为它使用SQLite的C API,这是非常好的文档和直接使用.它具有以下优点:您可以使用此目标来定位较旧的iOS平台.

使用这两个选项,数据将存储在客户端,并且每次用户将他/她的手机与iTunes同步时都会备份数据.