Лучший способ написать клиентскую библиотеку CalDAV на Objective-C?

Мне нужно написать клиентскую библиотеку CalDAV для Mac, и я просто хотел убедиться, как лучше всего ее написать.

Мне интересно, следует ли мне просто использовать NSURLRequest, или я должен перейти на уровень сокета, или что-то среднее?

Меня беспокоит использование только NSURLRequest, потому что для каждого вызова будет создаваться новое соединение вместо одного открытого соединения, через которое проходят все «запросы».

Я что-то упускаю?

Мысли? Предложения?


person kdbdallas    schedule 17.10.2011    source источник


Ответы (2)


NSURLRequest фактически не создает никаких подключений. Он просто инкапсулирует параметры запроса. NSURLConnection фактически создает соединение с сервером и отправляет запрос. Согласно этому ответу, скрытые NSURLConnection экземпляры совместно используют и повторно используют TCP-соединения:

NSURLConnection запускается много раз

Поэтому вам следует просто использовать NSURLRequest и NSURLConnection, если их API вам подходят.

ОБНОВИТЬ

Поскольку NSURLConnection устарел с iOS 9 / macOS 10.11, вам следует использовать NSURLSession.

person rob mayoff    schedule 17.10.2011

Используйте 1_. Несмотря на название, объект NSURLConnection не имеет однозначного соответствия с TCP-соединением. Фактически, NSURLConnection можно было бы более уместно назвать NSURLRequestLoadingManager или что-то в этом роде - это просто объект, который отслеживает ход выполнения этого конкретного запроса.

Базовые TCP-соединения управляются какао, и вам не нужно беспокоиться об их жизненном цикле.

person BJ Homer    schedule 17.10.2011