1

我有一个我正在开发的基于Objective-C/cocoa的应用程序。这个应用程序是客户端< - >服务器。目前,通信协议基于一些相当简单的XML。虽然XML适用于此任务,但它在任何方面都不理想。将数据序列化到XML是一种痛苦,它不是特别轻量级,并且很难将非数据信息(例如:'接下来做这个')纳入其中。数据序列化

我正在寻找替代方案的建议。

我已经考虑过列出here的一些,但还没有决定任何。建议?

回答

1

我为iPhone应用程序使用JSON - 我通常更喜欢XML,但我们需要它非常轻量级,所以我们决定使用JSON。

如果你使用XML,你应该看看XPath,如果你还没有 - 它会给你提供从XML数据结构中提取值的巨大能力。

+0

+1,我没有想过用xPath让生活更轻松。 hmmmm – Allyn 2010-01-17 18:56:33

1

你有什么样的服务器?如果服务器是基于Java的,我建议您查看Fredrik Olsson的HessianKit。编码/解码为普通的Objective-C类型并放入NSArrays和NSDictionaries将使体验更顺畅。

+0

这是Objective-c/cocoa,也是我写的 – Allyn 2010-01-17 19:47:07

+1

@Allyn ObjC两端? :)不错,那么如果你可以发送二进制包如何直接使用NSKeyedArchiver和NSKeyedUnarchiver。把所有你想要的,并获得NSData和发送,在接收器反向。 – epatel 2010-01-17 19:59:49

2

如果您正在与Objective-C服务器交谈,您可以使用Objective-C中提供的首选序列化方法来查看编码和解码。

NSKeyedArchiverNSKeyedUnarchiver

基本上你会得到从NSKeyedArchiverNSData,你将发送(字节/长度)的另一部分,有把它放回到一个NSData和使用NSKeyedUnarchiver一遍解压到对象。