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一遍解壓到對象。