我正在开发一个基于 Objective-C/cocoa 的应用程序。这个应用程序是客户端<->服务器。目前,通信协议基于一些相当简单的 XML。虽然 XML 适用于这项任务,但它在任何方面都不理想。将数据序列化为 XML 很痛苦,它不是特别轻量级,并且很难将非数据信息(例如:'do this next')合并到其中。
我正在寻找替代方案的建议。
我考虑过这里列出的一些,但还没有决定。建议?
我正在开发一个基于 Objective-C/cocoa 的应用程序。这个应用程序是客户端<->服务器。目前,通信协议基于一些相当简单的 XML。虽然 XML 适用于这项任务,但它在任何方面都不理想。将数据序列化为 XML 很痛苦,它不是特别轻量级,并且很难将非数据信息(例如:'do this next')合并到其中。
我正在寻找替代方案的建议。
我考虑过这里列出的一些,但还没有决定。建议?
如果您正在与 Objective-C 服务器通信,您可以使用 Objective-C 中可用的首选序列化方法来研究编码和解码。
NSKeyedArchiver
和NSKeyedUnarchiver
基本上你会NSData
从NSKeyedArchiver
你将发送(字节/长度)到另一部分的东西中得到一个,然后将它放回一个NSData
并用来NSKeyedUnarchiver
再次将它解包到对象中。
我将 JSON 用于 iphone 应用程序 - 我通常更喜欢 XML,但我们需要它非常轻量,因此我们决定使用 JSON。
如果您使用 XML,那么您应该看看 XPath(如果您还没有)——它将为您提供从 XML 数据结构中提取值的巨大能力。
你有什么样的服务器?如果服务器是基于 java 的,我建议查看 Fredrik Olsson 的HessianKit。编码/解码为普通的 Objective-C 类型并放入 NSArrays 和 NSDictionaries 将使体验更流畅。
(便携式)分布式对象有什么问题?