繁体   English   中英

如何更新通过iOS应用发布的数据库,而不更新应用本身?

[英]How do I update a database I distribute with an iOS app, without updating the app itself?

我正在构建一个应用程序,用户可以在其中下载烹饪食谱。 每个食谱都附有图片。 该数据库将是Sqlite,它将在用户设备上本地部署。 我计划将所有图像放在“支持的文件”文件夹中,该文件夹将由本地数据库使用。

我的问题是我将如何更新图像而不必推出新版本。 假设我在服务器数据库中添加了一个新配方,并且希望用户拥有该配方,我将如何做到这一点?

您需要一个API来请求当前配方版本,您可以使用该API来检查更新。 例:

 http://api.mysite.com/isCurrentVersion?v=0.0.5

那可以返回一个HTTP响应代码,告诉您更新已缓存的图像/数据库,或者您可以简单地使用php来回显许多当前版本,并与客户端进行字符串匹配,如下所示:

 NSString *downloadedVersion = [[NSUserDefaults standardUserDefaults] stringForKey:@"version"];
 NSString *serverVersion = [NSString stringWithContentsOfURL:[NSURL URLWithString:@"http://api.mysite.com/currentVersion"]];

 if ([downloadedVersion caseInsensitiveCompare:serverVersion])
      // download the new version

服务器代码:

 <?php
    echo "current_version_number" 
 ?>

让您的应用程序不时查询服务器,以查看自上次更新以来是否有任何图片已更改。 我建议让该应用发送带有mtimes的文件名列表,并让服务器发送回旧文件列表。 然后,您的应用可以获取新文件,替换旧文件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM