将永久 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];
我正在为 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];