
q210
03.03.2017
13:51:08
но лучше тебе кажется теорию почитать

Dmitriy
03.03.2017
13:51:10
и в блоке возвращается ответ от сервера

q210
03.03.2017
13:51:21
чем мы будем в 4 голоса в чате объяснять отрывками
и решить, надо оно тебе или нет

Google

Alfred
03.03.2017
13:51:33

Dmitriy
03.03.2017
13:51:50
и в каждом классе инициализировать этот обьект где юзаю?

Alfred
03.03.2017
13:52:24
можешь сделать один объект на всё приложение и прокидывать его

Dmitriy
03.03.2017
13:52:51
в аппделегате?

q210
03.03.2017
13:53:10
btw, хорошая статья на тему "почему синглтоны - не ок": https://www.objc.io/issues/13-architecture/singletons/

Alfred
03.03.2017
13:53:14
ну или di для бедных – зовешь синглтон в фабрике/конвиниенс инициализаторе

Радость
03.03.2017
13:53:36

Dmitriy
03.03.2017
13:54:05
А если вместо синглтона юзать просто статический класс?

q210
03.03.2017
13:54:05
они настолько удобны, что все и так ими пользуются где надо и не надо

Alfred
03.03.2017
13:54:31

q210
03.03.2017
13:54:31
лучше знать, когда их не стоит применять и почему

Dmitriy
03.03.2017
13:54:58
ну вот) опять же за всю практику с проблемаами от синглтонов не стыкался
поэтому читал много, но более удобной альтернативы не встречал написания

Google

Радость
03.03.2017
13:55:37

Dmitriy
03.03.2017
13:56:24
просто этот способ работы с сетью я видел когда-то у AFNetworking
в их гайдах
и как-то прижилось

Olexii
03.03.2017
13:56:49
так синглтон то и не должен содержать стейта так-то...

q210
03.03.2017
13:57:03
э?
рили?
UIApplication с тобой не согласен

Alfred
03.03.2017
13:57:39
скорее всего почти любой синглтон с тобой не согласен
если нет стейта – юзй сишную pure функцию

Dmitriy
03.03.2017
13:58:08
стейт - это состояние?

q210
03.03.2017
13:58:19
потому они от продакшн кода довольно резко отличаются местами
(но не поймите меня неправильно - читаемость в продакшн коде важна тоже)

Alfred
03.03.2017
13:59:14
afnetworking кажется вообще не то место куда надо идти за хорошим кодом

Dmitriy
03.03.2017
13:59:47
а где о работе с афнетворк лучше напишут чем у афнетворк?)
вот так там был вариант юзания их манагера
кажется все аккуратно, красиво и понятно

Google

Alfred
03.03.2017
14:02:55
для бэби кодинга сгодится, да

Dmitriy
03.03.2017
14:03:05
а в каких случаях это плохо?
и так не стоит юзать?

Alfred
03.03.2017
14:07:51
Если в тему код ревью, я например несколько минут вдуплял почему написано if (success) {, оказалось что это колбэк.

Dmitriy
03.03.2017
14:08:06
угу, оно крешится
если nil
в другом классе в вызове

Alfred
03.03.2017
14:09:04
Понятно что крешится, название success мне не понятно.
successCallback?

q210
03.03.2017
14:09:19
не проверяешь явно что в ответе 2 и сразу чекаешь баланс
ты уверен что потом у тебя не будет 3 ?
также - @1 ? magic numbers

Dmitriy
03.03.2017
14:09:47
та там на сервере костыл, исправят удалю весь if, его не должно быть. там эта проверка сугубо под 1 запрос, бо он не такой как все
никак не поменяют

q210
03.03.2017
14:10:28
да и API у тебя... эээ

Dmitriy
03.03.2017
14:10:39
:) да, руки не дойдут все по феншую
но я сейчас про такую форму обертки
через синглтон
когда это плохо и почему?

Google

q210
03.03.2017
14:10:59
иногда там {"result": ... , "response": ...} а иногда {"result": ... , "balance": ...} ?

Dmitriy
03.03.2017
14:11:44
должно быть кругом result... {response
и будет без response balance :)
гы) нашел баг) пок апереписывал как должно быть

q210
03.03.2017
14:13:43
я пока не вижу - где там синглтон?

Alfred
03.03.2017
14:14:11
PApiClientGeneral – синглтон?

q210
03.03.2017
14:14:42
да не, не должен быть
там инициализватор с url же

Dmitriy
03.03.2017
14:15:20
ой
вот, генерал то просто родительский

q210
03.03.2017
14:16:54
papi client =)

Dmitriy
03.03.2017
14:17:14
:)

q210
03.03.2017
14:17:23
но ок, допустим
ты его сделал, он работает
вероятно умеет авторизоваться в API и хранить сессию / токен
а теперь прикинь, ты решил что в твоём приложении клиент должен уметь разлогиниться
и залогиниться под другим акком

Google

Dmitriy
03.03.2017
14:18:39
нет токенов)
но да, такое в других проектах делал

q210
03.03.2017
14:19:17
вот тут ты попадаешь - придётся писать код, который твой неубиваемый синглтон будет чистить от стейта
или убивать
в статье https://www.objc.io/issues/13-architecture/singletons/
именно такой случай и описан

Dmitriy
03.03.2017
14:19:58
нуу, почему? я в классе, который делает логаут
чищу
а не в синглоте
от синглтона я ток получаю: успешно разлогинился или нет

q210
03.03.2017
14:20:47
а мог бы не чистить
это лишний код
лишний код - источник лишних багов

Dmitriy
03.03.2017
14:21:10
а как?

Alfred
03.03.2017
14:21:11
А еще можешь сказать, что лежит в POST:parameters:progress:success:failure:

Dmitriy
03.03.2017
14:21:13
сессию же нужно удалить

q210
03.03.2017
14:21:14
статья, почитай её

Dmitriy
03.03.2017
14:22:40

Alfred
03.03.2017
14:23:01
как в хттп хидеры положить что нибудь?

Dmitriy
03.03.2017
14:23:33
хз) гуглить надо)

Alfred
03.03.2017
14:23:35
а это тогда что?