2

好的,这是一个相当广泛的问题。这是我的第一个应用程序,我不确定最好的方法。该应用程序在 IPHONE 上。

我有一个“餐厅”课程。餐厅有许多不同的属性和开放时间。我目前将餐厅存储在 nsdata 的实例中(它符合 NSCoding)本地存储很容易,我只使用 nsdata。

我刚刚内置了一个导入/导出功能。我希望这两种方法可以将餐厅“发布”到网络并从网络“获取”餐厅。我知道我可以用 NSUrlConnection 做到这一点,并且我已经启动并工作了。

但是我想更聪明一点。例如,如果我想获取已提交的在线餐厅列表并构建一个也可以与数据交互的 Web 界面怎么办?

到目前为止,这就是我的想法:创建一个“toString”方法,将我的类转换为文本表示。然后将字符串存储在服务器上。这将取代在线存储 nsdata。这听起来合适吗?

但是,我希望能够查询餐馆的数量并对我的在线“数据库”有更多的控制权。XML 是答案吗?我正要开始研究 Amazon Web Services 并学习 Json 或 Rest。

有什么建议吗?

谢谢

4

3 回答 3

1

我对 iPhone 的开发还不是很熟悉,但是如果有相当简单的方法来使用 Web 服务,我会推荐使用带有类型参数的方法。这也将使这些服务对其他系统更“可用”,他们不需要知道如何将对象序列化/打包为字符串,而只需要知道如何调用函数:storeRestaurang(string name, int rating...) 等。

这是一篇我将自己检查的文章,因为我希望更多地进入 iPhone 开发:http: //icodeblog.com/2008/11/03/iphone-programming-tutorial-intro-to-soap-web-services /

于 2009-01-27T10:32:51.763 回答
1

看起来你想使用 plist。任何可可集合类都可以写入 plist,这是一种 xml 文件。甜蜜的部分是如果你使用标准的可可值类,你可以写出集合,然后再读回来。

NSString, NSNumber, NSDate, NSData, NSAray, NSDictionary 对象可以被放入一个集合并直接存储到一个 plist 中。其他类必须序列化为 NSData,然后作为 plist 写入磁盘。对于真正的自定义数据,NSKeyedArchiver 可能是您想要的。

对于简单的字符串和数字数据,将其全部打包到 NSDictionary 中,然后将其写入 plist。现在在你的 Mac 上环顾四周,你会发现 plist 有多受欢迎。

NSDictionary API - 存储字典

属性列表编程指南

Cocoa 的归档和序列化编程指南

于 2009-01-27T14:51:30.837 回答
0

了解 REST,它是提供基于 Web 的 API 的最简单、最简洁的方式。一些框架,如 Ruby on Rails,为您提供了开箱即用的 REST 接口。

然后,您需要找到一种方法将 iPhone 上的对象转换为 REST 友好格式。XML 和 JSON 都是选项,但不幸的是,我还没有看到任何我可以真正推荐的用于转换为 XML 或 JSON 的代码,因为我还没有尝试过任何代码。但是,有些项目可能会引导您朝着正确的方向前进。最有希望的一个是:

http://github.com/yfactorial/objectiveresource/tree/master

于 2009-01-27T14:58:15.253 回答