@ios_ru

Страница 649 из 2351
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
и он тож синглтон но вызывается [MySession sharedsessin]loginUser...
синлтон – зло, передавай черз инициализатор

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
они настолько удобны, что все и так ими пользуются где надо и не надо

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
просто этот способ работы с сетью я видел когда-то у AFNetworking
примеры в гайдах всегда пишут чтобы их было просто понимать

потому они от продакшн кода довольно резко отличаются местами

(но не поймите меня неправильно - читаемость в продакшн коде важна тоже)

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": ...} а иногда {"result": ... , "balance": ...} ?
ага) говорю же на сервере туфту отдают) клюю переодически, как поменяют удалю этот чек

должно быть кругом 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
статья, почитай её

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

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

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

Страница 649 из 2351