Swift Alamofire与AFNetworking对比

50

我正在使用Swift开发应用程序,想要调用REST API。我发现有两个流行的库,AFNetworking和Alamofire。但是我不知道哪个更好(是否更受欢迎或具有更多功能)。

有人可以建议一下Alamofire和AFNetworking之间的主要区别吗?


5
两者相等。对于Swift,您可以使用Alamofire,而对于Objective-C,您可以使用AFNetworking。 - Ashish Kakkad
1
尝试两种方法并为您的应用程序进行基准测试。如果您没有使用很多功能,请根据基准测试编写自己的代码并删除冗余代码。 - μολὼν.λαβέ
5个回答

86

19
+1 是为了回答 OP 实际提出的问题(主要区别是什么),并提供比被接受的答案更多的信息。 - Patrick

83

如果您使用Objective-C,请使用AFNetworking

如果您使用Swift,请使用Alamofire


@Puvanarajan 哪个方法? - Arsen
7
如果你正在开发一个同时使用Objective-C和Swift的应用程序,该怎么办? - hariszaman
@hariszaman 我会建议使用Alamofire,然后使用Objective-C代码库的桥接。 https://developer.apple.com/library/ios/documentation/Swift/Conceptual/BuildingCocoaApps/MixandMatch.html - Arsen
@Arsen它不能直接使用,你需要实现一些包装器。 - hariszaman
Alamofire并不提供所有功能。顺便说一下。 - Ivan

10
如果你正在使用 Objective-C 开发应用程序,那么你必须选择 AFNetworking
否则,如果你正在使用 Swift 进行开发,则尝试使用Alamofire的最新版本。
在这两个库中,网络通信都是异步进行的。唯一的区别是,Alamofire不再支持iOS 7,因为它不支持框架。

9

AFNetworking:

  • 这是该库的Objective-C版本。
  • 它非常强大,您可以在Swift项目中安装它,并将其用作与Swift项目的桥梁。

Alamofire:

  • 这是AFNetworking的Swift版本。
  • 但并不包括AFNetworking的所有功能。

如果您精通Objective-C,请使用AFNetworking。如果不是,请使用Alamofire。它很简单,而且有很多Swift资源可用。


5
AFNetworking是面向iOS、macOS和tvOS的Objective-C网络库。这是一个经过多年发展的强大库,从基本网络到高级功能(如网络可达性和SSL Pinning)应有尽有。AFNetworking是最受欢迎的iOS库之一,已经被下载了近5000万次。
Alamofire是AFNetworking的继承者,但是它是用Swift编写的。这两个库具有类似的功能集,主要区别在于它们所使用的语言。
如果你正在启动一个全新的Swift项目,我的建议是使用Alamofire,以使你的核心网络库与自己的源代码保持一致。否则,AFNetworking和Alamofire都是很好的选择。
来源: Raywenderlich

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接