我正在为iPhone开发一个铁路应用程序。该应用程序在其中一个视图中列出了用户周围的一些火车站。但我不想总是ping服务器,以访问不会改变的数据。我打算在这里做的是,创建一个虚拟应用程序并访问一次站点列表,将其保存在NSDictionary
中,然后将该NSDictionary
文件永久复制到我的真实应用程序中。我该怎么做?注意:- 使用 Objective-C
.不Swift
以下任何一个进行存储。
NSUserDefaults -- 它用于适度保存数据。
核心数据 - 它用于保存具有更多不同类型的记录的大数据。
属性列表 -- 列表。
如果您想永久保存数据,即使该应用程序已从设备中删除。
您也可以在删除并重新安装应用程序后使用以下UIKeyChain获取数据。这种情况不适用于Core Data & User Defaults。
钥匙串存储将通过访问钥匙串访问来存储数据。
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];