NSURLConnection или NSObject, который реализует NSURLConnection — концепция подкласса с Objective-C

Просто думаю и пытаюсь понять, как мне реализовать NSURLConnection в Objective-C. Кстати; я хотел бы подключить разные серверы для некоторых заданий регистрации / загрузки (! несколько подключений).

Я добавил новый класс Objective-C, основанный на NSObject. Затем я добавил свои свойства NSData, NSURLConnection и необходимые делегаты. Материал работает нормально, подключение, загрузка и загрузка.

Для каждого отдельного соединения я должен скопировать класс или реализовать некоторую логику в одном классе, чтобы различать несколько соединений.

Каков предпочтительный способ, как правило, для подкласса NSURLConnection? С C++ я бы создал подкласс NSURLConnection, добавил свои свойства и перегрузил конструкцию/уничтожение?

Концептуальный вопрос :-(

Спасибо!


person Thomas    schedule 25.11.2014    source источник
comment
Что не так с использованием подхода подклассов здесь?   -  person Tom Harrington    schedule 25.11.2014
comment
просто кажется грязным создавать новый класс поверх NSObject.   -  person Thomas    schedule 26.11.2014
comment
Я имел в виду подкласс NSURLConnection, как вы описываете в конце своего вопроса. Ваша формулировка предполагает, что, хотя вы сделаете это на С++, вы не думаете, что это сработает в ObjC.   -  person Tom Harrington    schedule 26.11.2014


Ответы (1)


Обычно используется торговая парадигма, где некоторый класс принимает URL-адрес конечной точки и генерирует NSURLRequest и NSURLConnection для использования. В вашем экземпляре класс, который у вас есть в настоящее время, может служить хорошей абстракцией, где управляющий класс создаст экземпляр с определенным URL-адресом, а созданный вами класс будет обрабатывать конкретные ответы делегата.

Другой вариант, если вы не возражаете против использования зависимостей, — это использование AFNetworking, у которого есть функциональные возможности для продажи вам NSURLConnections, завернутые в NSOperations (или NSURLSessionTasks). Вы можете просмотреть класс AFHTTPRequestOperationManager, если хотите вдохновение. По сути, менеджер продает базовые AFHTTPRequestOperations, которые являются подклассами NSOperation, которые принимают методы делегата NSURLConnection для асинхронной обработки соединений.

person Jon Shier    schedule 25.11.2014