在线存储我的 ObJ-C 课程。(亚马逊网络服务?)
-
20-08-2019 - |
题
好吧,这是一个相当广泛的问题。这是我的第一个应用程序,我不确定最好的方法。该应用程序在 IPHONE 上。
我有一个“餐厅”课程。餐厅有许多不同的属性和营业时间。我目前在 nsdata 实例中存储一家餐厅(它符合 NSCoding)本地存储很容易,我只使用 nsdata。
我刚刚内置了导入/导出功能。我想要这两种方法将餐厅“发布”到网络上并从网络“获取”餐厅。我知道我可以使用 NSUrlConnection 来做到这一点,并且我已经安装并运行了。
但我想在这方面变得更聪明。例如,如果我想获取已提交的在线餐厅列表并构建一个也可以与数据交互的 Web 界面,该怎么办?
到目前为止我的想法是:创建一个“toString”方法,将我的类转换为文本表示形式。然后将字符串存储在服务器上。这将取代在线存储 nsdata。这听起来合适吗?
但是,我希望能够查询餐馆的数量,并对我的在线“数据库”有更多的控制权。XML 是答案吗?我正准备开始研究 Amazon Web Services 并学习 Json 或 Rest。
有什么建议吗?
谢谢
担
解决方案
了解关于REST,它是提供一个基于Web的API的最简单和干净的方式。一些框架,像Ruby on Rails的,给你一个REST接口有权开箱的。
然后,你需要找到一种方法,你的对象转换的iPhone为REST友好的格式。 XML和JSON是这两个选项,但不幸的是我还没有看到任何代码从XML或JSON转换成/我真的可以推荐,因为我还没有尝试过,只是还没有。但是,也有一些可能导致你在正确的方向的项目。一个最有前途的前瞻性的是这样的:
其他提示
我不是很熟悉iPhone的发展还,但如果有相当简单的方法来使用Web服务,我会建议使用有类型的参数。这将使这些服务的更多来自其他系统太“可用”,他们就不需要知道如何序列化/包对象的字符串,但只是如何调用一个函数:storeRestaurang(字符串名称,诠释评价...)等。
这是一篇文章,我会看看我自己,因为我希望能进入iPhone开发多一点:的 http://icodeblog.com/2008/11/03/iphone-programming-tutorial-intro-to-soap-web-services/ 一>
看起来你想使用 plist。任何 cocoa 集合类都可以写入 plist,这是一种 xml 文件。最美妙的部分是,如果您使用标准的可可值类,您可以将集合写出,并稍后将其读回。
NSString、NSNumber、NSDate、NSData、NSAray、NSDictionary 对象可以放入集合中并直接存储到 plist 中。其他类必须序列化为 NSData,然后作为 plist 写入磁盘。对于真正的自定义数据,NSKeyedArchiver 可能就是您想要的。
对于简单的字符串和数字数据,将其全部打包到 NSDictionary 中,然后写入 plist。现在在您的 Mac 上环顾四周,您就会发现 plist 是多么流行。