【发布时间】:2015-06-21 13:23:20
【问题描述】:
我正在开发一个加载机场数据库的应用程序。 我将数据库“.JSON”文件放在 Xcode 的应用程序中。 一切正常,除了加载数据库的时间很长。
我使用这种方式从 JSON 文件中获取一个数组。
-(void)readDataFromFile
{
NSString * filePath =[[NSBundle mainBundle] pathForResource:@"airports" ofType:@"json"];
NSError * error;
NSString* fileContents =[NSString stringWithContentsOfFile:filePath encoding:NSUTF8StringEncoding error:&error];
if(error)
{
NSLog(@"Error reading file: %@",error.localizedDescription);
}
self.airports = (NSArray *)[NSJSONSerialization JSONObjectWithData:[fileContents dataUsingEncoding:NSUTF8StringEncoding] options:0 error:NULL];
NSLog(@"%@",self.airports);
}
我的问题
如何在应用程序加载时移动这个等待时间? 简而言之,我需要在启动时加载数据库!
【问题讨论】:
-
你为什么一直在加载和解析静态 JSON 文件?为您的应用程序提供预加载的 SQLite 数据库文件会更有效。这样你就不需要每次都解析数据,查询效率会高得多,而且你不需要整个数据库都在内存中。
-
@rmaddy 谢谢!我想过这个问题 !你能告诉我关于如何获得这个预加载的 Sqlite Db 和查询示例的“按代码”执行的步骤吗?
-
这个问题太宽泛了。我只是在为你指出一个更好的方向。做一些关于使用 SQLite 的研究。如果您遇到特定问题,请针对该特定问题发布一个新问题。
-
@rmaddy 我知道如何使用 SQLite 但不知道如何将 JSON 数据库与 SQlite 链接,有什么帮助吗?
-
@rmaddy 如果我将 JSON 文件转换为 Sqlite db,它会工作吗?
标签: objective-c json nsarray startup