【问题标题】:Formats for communicating between backend and Objective-C/Cocoa后端和 Objective-C/Cocoa 之间通信的格式
【发布时间】:2010-01-22 18:30:47
【问题描述】:

我正在开发一个连接到后端服务器的 iPhone 应用程序。它需要通过多次请求与其多次通信。我正在发送 HTTP 消息,但我想接收更复杂的响应,我可以以某种方式对其进行解析。假设,我可以为来自服务器的响应提供任何类型的格式,所以我的问题是:对于 Objective-C/Cocoa 使用/解析哪个更容易(甚至更快),并在某种字典中转换?

我知道这有点主观,但我仍然认为这是一个有效的问题,一些编程语言对某些格式的支持更多,而对其他格式的支持更少。

【问题讨论】:

    标签: iphone objective-c cocoa format backend


    【解决方案1】:

    从 Cocoa 的角度来看,最简单的格式是 property list,因为 Cocoa 可以将其本地解析为字典或数组。

    您可以使用 NSDictionary 的 +dictionaryWithContentsOfFile:+dictionaryWithContentsOfUrl: 将 plist 文件读入字典。

    如果您的 plist 数据不在文件中,您还可以使用 +[NSPropertyListSerialization dataFromPropertyList:format:errorDescription:] 将包含 plist 数据的 NSData 对象转换为字典,或使用 -[NSString propertyList] 将 NSString 转换为字典。

    【讨论】:

    • 我使用过 JSON 和 PLIST,我倾向于使用 PLIST。它也该死的快。
    • 好的,乍一看听起来很酷。但到目前为止,我还不明白在我的具体情况下该怎么做。我的 XML 已经在我身边(Obj-C),在一个 NSString 中。让我们假设它也有 plist 约定。如何将该 plist-xml-string 转换为字典?
    • 我在回答中添加了更多信息。我在上面链接的属性列表编程指南中也提供了此信息。
    【解决方案2】:

    PList 是一个很好的答案并且非常有用,但是许多服务器端的人会更愿意生成 JSON - TouchJSON 是一个非常好的 iPhone 的 JSON 解析器。

    【讨论】:

      【解决方案3】:

      虽然有 plist gem for ruby,但 JSON 或(原始)XML 在 Apple 世界之外更为流行。例如,大多数 JavaScript 库都设置为使用其中一种或两种语言。

      因此,如果您只与 iPhone 通话,plist 可能是一个不错的选择,否则您应该考虑使用 JSON(或 XML)。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2010-12-29
        • 1970-01-01
        • 2017-12-23
        • 1970-01-01
        • 2023-03-14
        • 2022-01-20
        • 1970-01-01
        相关资源
        最近更新 更多