【问题标题】:AFNetworking vs BaaS?AFNetworking 与 BaaS?
【发布时间】:2014-05-14 14:49:31
【问题描述】:

我打算构建一个简单的社交应用程序,可以让用户发送图片和短信。通过一些研究,我发现有些人使用后端即服务 (BaaS) 来管理服务器上的数据库,而有些人使用 AFNetworking。

我有两个问题在你看来可能很愚蠢:

  1. 我的iOS编程书使用NSURL + NSURLRequest + NSURLSessionTask + NSURLSession 从网络获取JSON数据,为什么很多人使用这个第三方API AFNetworking?

  2. 使用 AFNetworking(与 Baas 相比)有什么好处?如果我使用 AFNetworking,我是否必须编写自己的服务器代码?

谢谢!

【问题讨论】:

    标签: ios json cocoa-touch afnetworking mbaas


    【解决方案1】:

    这些是在不同层次上运行的技术。您可以使用这些组合来组装架构。

    AFNetworking 是 NSURL + NSURLRequest + NSURLSessionTask + NSURLSession 的一个很好的替代品。它是一个客户端网络框架。如果您编写自己的 Web 服务器,这是一个不错的选择。

    大多数 BaaS 平台都有 Web API。 AFN 可以很好地处理这些问题。 NSURL* 也是如此。

    Firebase 等一些 BaaS 平台提供 iOS SDK。在这种情况下,您可以使用 SDK 代替 AFN 或 NSURL*。

    【讨论】:

    • 谢谢@noa,但是好的替代品是什么意思? AFNetworking 的优势是方便(使用更少的代码)还是功能(它真的提供更多)?
    • @wz366 你需要去阅读 AFNetworking 的文档。它只是 NSURLRequest 和朋友的包装器。 AFNetworking 不提供额外的功能,但确实(在某些情况下大大)减少了做你想做的事情所需的代码。
    【解决方案2】:

    AFNetworking 只是一个包含NSURLSession 及其同类的令人愉快的库。在几乎任何可以使用 Apple API 的情况下,您都可以使用 AFNetworking

    我喜欢AFNetworking,因为它倾向于简化对几行代码的网络调用。

    【讨论】:

    • 谢谢,JSON 是 AFNetworking 唯一可以处理的数据类型吗? AFNetworking 可以与服务器上的数据库一起使用吗?
    • 没有。您可以用于 JSON、XML、属性列表和图像。
    • @wz366 AFNetworking 可用于下载任何文件类型。如果您希望 API 自动反序列化您期望的数据,例如 PLIST,您需要设置适当的 AFURLResponseSerialization 类来处理特定数据。
    • @Camus 不正确。 AFNetworking 可以下载任何文件。如果它不知道如何反序列化数据,那么它会将原始的NSData 传递给您自己处理。这与NSURLSessionNSURLConnection 没有什么不同。
    • 这就是我的意思。要将数据反序列化为特定的而不是“NSData”,它只接受那些。
    猜你喜欢
    • 1970-01-01
    • 2014-11-22
    • 1970-01-01
    • 1970-01-01
    • 2016-07-08
    • 2013-12-31
    • 1970-01-01
    • 2015-12-07
    • 1970-01-01
    相关资源
    最近更新 更多