我在 Web 服务器上有一个 MySQL 数据库,需要从 iPhone 应用程序中读取数据。做这个的最好方式是什么?数据需要从网络服务器访问,并且会不时更新。NSURL 类是要走的路吗?
谢谢你的帮助。
我在 Web 服务器上有一个 MySQL 数据库,需要从 iPhone 应用程序中读取数据。做这个的最好方式是什么?数据需要从网络服务器访问,并且会不时更新。NSURL 类是要走的路吗?
谢谢你的帮助。
我建议在服务器端使用一种简单的 Web 技术——PHP、Ruby on Rails 等——它充当发送 JSON 的基本 RESTful 风格的 Web 服务。这很简单,不需要大量的编程专业知识——例如,通过 PHP 输出 JSON 需要一行代码,而获取数据的请求只需要少量代码。
在 iPhone 端,ASIHTTPRequest使得创建异步更新请求变得非常容易,而SBJSON使得将接收到的数据转换为 NSDictionaries 的 NSArray 非常容易,只需几行代码。
使这一切顺利进行的关键是确保您密切跟踪数据修改日期,以确保下载新记录并确保 iPhone 接收每条更新的记录。
例如,MYSQL 服务器上的每条记录都可以有一个 LastModified 字段,该字段使用on update CURRENT_TIMESTAMP命令使该字段保持最新。在 iPhone 上,您还将存储这些日期。当设备请求和更新时,它首先查找它正在更新的表的最新 LastModified 日期并将其发送到服务器。服务器代码发回 LastModified 大于发送日期的所有记录。
这可以通过在服务器端为每条记录设置一个 DateCreated 字段来进一步简化。这允许服务器返回两组数据,其中一组 DateCreated 字段大于发送的 LastModified 日期——这些将被插入 iPhone 数据库——另一组 LastModified 服务器日期晚于发送的一组但 DateCreated 字段小于或等于发送的日期——这些是需要更新的数据行。
我刚刚编写了一个执行此操作的应用程序,所以这些问题在我脑海中是新鲜的。希望这可以帮助。
您不能直接连接到数据库。您将需要在您的服务器上有一个页面,以 JSON 或 XML 格式转储数据库的必要区域。你应该看看 TouchJSON。