我需要为 Mac 编写一个 CalDAV 客户端库,我只是想确定什么是编写它的最佳方式。
我想知道我是否应该只使用 NSURLRequest 还是应该转到套接字级别,或者介于两者之间?
我对仅使用 NSURLRequest 的担忧是每次调用都会建立一个新连接,而不是让所有“请求”都通过一个打开的连接。
我错过了什么吗?
想法?建议?
我需要为 Mac 编写一个 CalDAV 客户端库,我只是想确定什么是编写它的最佳方式。
我想知道我是否应该只使用 NSURLRequest 还是应该转到套接字级别,或者介于两者之间?
我对仅使用 NSURLRequest 的担忧是每次调用都会建立一个新连接,而不是让所有“请求”都通过一个打开的连接。
我错过了什么吗?
想法?建议?
NSURLRequest
实际上并没有创建任何连接。它只是封装了请求的参数。 NSURLConnection
实际上创建到服务器的连接并发送请求。根据这个答案,在幕后,NSURLConnection
实例共享和重用 TCP 连接:
NSURLRequest
因此,NSURLConnection
如果他们的 API 适合您,您应该只使用它们。
由于NSURLConnection
自 iOS 9 / macOS 10.11 起已弃用,您应该使用NSURLSession
.
使用NSURLRequest
. 尽管有命名,但NSURLConnection
对象与 TCP 连接并没有一一对应的关系。事实上,NSURLConnection
可能更恰当地命名NSURLRequestLoadingManager
或其他东西——它只是一个跟踪特定请求进度的对象。
底层 TCP 连接由 Cocoa 管理,您无需担心它们的生命周期。