将永久 NSDictionary 添加到 ios 应用程序

Add a permanent NSDictionary to ios app

我正在为 iPhone 构建铁路应用程序。该应用程序在其中一个视图中列出了用户周围的一些火车站。但我不想总是 ping 服务器,以访问不会更改的数据。我打算在这里做的是,创建一个虚拟应用程序并访问 Stations List 一次,将其保存在 NSDictionary 中,然后将该 NSDictionary 文件永久复制到我的真实应用程序中。我怎样才能做到这一点? 注意:- 使用 Objective-C。不是 Swift

您可以使用以下任何一种进行存储..

NSUserDefaults -- 用于临时保存数据。

Core Data -- 用于保存记录类型较多的大数据

属性 列表 -- Plist.

如果您想要永久保存数据,即使应用已从设备中删除。

您也可以在删除并重新安装应用程序后使用下面的 UIKeyChain 获取数据。这种情况不适用于核心数据和用户默认值..

KeyChain store 将通过访问 KeyChain Access 来存储数据。

https://github.com/kishikawakatsumi/UICKeyChainStore

希望是有用的内容..

使用 NSUserDefault 将您的数据存储在存档中。并在一段时间 ex. every 2 hour 或其他时间后更新数据。

存储数据

NSData *datadic = [NSKeyedArchiver archivedDataWithRootObject:yourDictionaryName];
[[NSUserDefaults standardUserDefaults] setObject: datadic forKey:SCHEDULEDATA];
[[NSUserDefaults standardUserDefaults] synchronize];

获取数据

if([[NSUserDefaults standardUserDefaults] valueForKey:SCHEDULEDATA]!= nil){
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    NSData *data = [defaults objectForKey:SCHEDULEDATA];
    NSMutableDictionary *yourDictionaryname = [NSKeyedUnarchiver unarchiveObjectWithData:data]; 
}

每次都使用您的词典名称..就是这样。

如果电台列表永远不会改变,或者您不想支持动态更新而只想将列表嵌入到您的应用程序中,另一种方法可能是包含一个 json文件在你的应用程序中。然后您可以通过以下方式简单地从文件中检索内容:

NSString *stations = [[NSBundle mainBundle] pathForResource:@"stations" ofType:@"json"];
NSData *data = [NSData dataWithContentsOfFile:filePath];
NSArray *json = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:nil];