我正在开发一个连接到后端服务器的 iPhone 应用程序。它需要通过多次请求与其多次通信。我正在发送 HTTP 消息,但我想接收可以以某种方式解析的更复杂的响应。假设,我可以为来自服务器的响应提供任何类型的格式,所以我的问题是:对于 Objective-C/Cocoa 使用/解析哪个更容易(甚至更快),并在某种字典中转换?
我知道这有点主观,但我仍然认为这是一个有效的问题,一些编程语言对某些格式的支持更多,而对其他格式的支持更少。
我正在开发一个连接到后端服务器的 iPhone 应用程序。它需要通过多次请求与其多次通信。我正在发送 HTTP 消息,但我想接收可以以某种方式解析的更复杂的响应。假设,我可以为来自服务器的响应提供任何类型的格式,所以我的问题是:对于 Objective-C/Cocoa 使用/解析哪个更容易(甚至更快),并在某种字典中转换?
我知道这有点主观,但我仍然认为这是一个有效的问题,一些编程语言对某些格式的支持更多,而对其他格式的支持更少。
从 Cocoa 的角度来看,最简单的格式是属性列表,因为 Cocoa 可以将其本地解析为字典或数组。
您可以使用 NSDictionary+dictionaryWithContentsOfFile:
和+dictionaryWithContentsOfUrl:
将 plist 文件读入字典。
如果您的 plist 数据不在文件中,您还可以将包含 plist 数据的 NSData 对象+[NSPropertyListSerialization dataFromPropertyList:format:errorDescription:]
转换为带有-[NSString propertyList]
.
PList 是一个很好的答案并且非常有用,但是许多服务器端的人会更愿意生成 JSON - TouchJSON 是一个非常好的 iPhone 的 JSON 解析器。
虽然 ruby 有一个plist gem,但 JSON 或(原始)XML 在 Apple 世界之外更受欢迎。例如,大多数 JavaScript 库都设置为使用其中一种或两种。
因此,如果您只与 iPhone 通话,plist 可能是一个不错的选择,但否则您应该考虑使用 JSON(或 XML)。