哪个是将数据库初始数据下载到iOS应用程序的最佳方式?

我正在开发一个应用程序,在用户首次登录时必须从我的服务器下载大量数据并将其存储在我的i​​OS应用程序中的本地数据库中。

在我的服务器中,我正在使用MySQL。 我需要下载70MB …到我的iOS应用程序才能在本地使用这些数据,无论是否连接。

下载此数据的最佳方法是什么? XML压缩? 导出到SQLite文件,压缩此文件,然后下载?

你能推荐一种方法吗?

如果服务器上的数据库是动态的; 一种好的方法是构建一个用于访问服务器上的数据库数据的API,您可以通过PHP构建API并让应用程序只读取数据的响应为JSON或XML。

如果数据库是静态的并且不经常更新的另一种方法是将SQL数据库作为SQLite数据库添加到IOS应用程序,并在应用程序上运行本地sql查询。

我们使用Web服务和SOAP将数据从服务器传输到设备。 您应该研究SOAP和REST Web服务。 你基本上得到了你可以解析并用来创建适当对象的xml。

虽然这对你想要做的事情来说可能有点太多,但值得研究。

此外,数据可以存储在SQLite数据库中,大多数移动平台都支持该数据库。

是的,您可以将其导出到SQLite,压缩并使用AFNetworking下载。

NSString *yourFileURL=@"http://yourFileURL.zip"; NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:yourFileURL]]; AFURLConnectionOperation *operation = [[AFHTTPRequestOperation alloc] initWithRequest:request]; NSString *cacheDir = [NSSearchPathForDirectoriesInDomains (NSCachesDirectory, NSUserDomainMask, YES) objectAtIndex:0]; NSString *filePath = [cacheDir stringByAppendingPathComponent: @"youFile.zip"]; operation.outputStream = [NSOutputStream outputStreamToFileAtPath:filePath append:NO]; [operation setDownloadProgressBlock:^(NSUInteger bytesRead, long long totalBytesRead, long long totalBytesExpectedToRead) { //show here your downloading progress if needed }]; [operation setCompletionBlock:^{ NSLog(@"File successfully downloaded"); }]; [operation start];