Я начал дизайн для NetworkCommunication. У меня была конструкция, в которой подклассы NSOperation создают и управляют собственными NSURLConnection. Подкласс NSOperation создается экземпляром класса NetworkManger, который добавляет его в NSOperationQueue. По завершении запроса делегат (например: ViewController будет вызываться). Это поток:
Network Manger создает экземпляр подкласса NSOperation (который инкапсулирует URL, параметры и т.д.) и добавляет его в NSOperationQueue, который он поддерживает.
Подкласс NSOperation создает экземпляр NSURLConnection (который выполняет запрос asynchronous и получает данные)
NSURLConnection записывает данные в подкласс NSOperation
Подкласс NSOperation выполняет блок завершения, предоставленный делегатом (контроллер просмотра).
Я пытаюсь реализовать тот же шаблон с NSURLSession сейчас. Я хочу иметь возможность инкапсулировать URL-адрес и параметры, необходимые для создания сетевого запроса внутри одного объекта.
Хорошо, если я использую тот же шаблон, если я использую NSURLSession. Я проверил классы AFNetworking. Но они не подклассифицировали NSOperation для NSURLSession. И, кроме того, куда должен идти объект сеанса. Будет ли он частью класса NSOperation.
Может кто-нибудь дать некоторые экспертные советы по этому поводу. Я должен иметь возможность отменять запросы, загружать (POST/PUT), загружать данные. Класс Network Manager был бы единственной точкой контакта для любого сетевого запроса.