В "кастомно рисуются" я закладывал то, что есть стандартный элемент tooltip для android или ios, его можно переопределить и сделать свою реализацию и дизайн.
Я вас понял. Спасибо большое, вы многое расставили в моей голове по местам :) Не перестаю это повторять.
Насколько я понял, вас смутило, что в п.5 обработка логики может попасть в поток сессии и сессия будет висеть очень долго, следовательно может не начаться следующая таска, либо начаться, но будет больше ресурсов кушать. Судя по ссылке, вы советуете логику обработки в модуле API делать в main thread, тогда тред с сессией завершится?
Спасибо огромное за развернутый и подробный ответ! Поясните, пожалуйста, в п.5 мы вызываем делегатный метод из handler'a, а вызываемый метод принадлежит VC?
Я, в целом, хочу всю логику по обработке ответа и формированию запроса вынести в отдельный класс THETALEAPI, чтобы все, что связано с API было в одном месте, данный класс будет прослойкой между THETALEViewController и httpHandler. Правильно ли я понимаю, что мне нужно будет сделать такую же схему с делегатами, только чуть посложнее?
1. VC создает API и назначает себя его делегатом
2. API создает handler
3. Handler создает сессию в отдельном методе.
4. API вызывает метод Handler'a для запроса
5. Попали в completion-блок c тем или иным результатом, надо сообщить об этом API. Если посмотреть мой код, то там в блоке написано completion(data); так мы сообщим о том, что есть данные.
6. API обработает ответ, распарсит, создаст объекты модели, замапит туда данные
7. API в главном потоке вызовет делегатный метод у VC и передаст туда нужные данные.
8. VC сделает необходимые действия по обновлению UI.
Спасибо за ответ! Кое-что у меня улеглось в голове ровнее после его прочтения.
"completion-блок" - это вы имели ввиду completionHandler ?
Если да, то где мне реализовать метод "afterLoginLogicMethod"? Мой httpHandler не должен ничего знать о смысле запроса, он его просто выполняет. Может отсюда мне лучше делегировать обработку во VIEW путем вызова метода на view controller объекте?
Написано
Войдите на сайт
Чтобы задать вопрос и получить на него квалифицированный ответ.