︹︺ ВАДИМ ︺︹
Триал
Ну... со 100% бесплатным функционалом... так?
︹︺ ВАДИМ ︺︹
Деда
Есть ещё место для файлов, дай гигабайт, выше - платный план
Dmitry
что-то я упустил момент когда в нашей стране малый бизнес появился
︹︺ ВАДИМ ︺︹
Так идея в том что, за пару месяцев данные какие то внесут, поработают...
︹︺ ВАДИМ ︺︹
И честно получается...
Александр
А если первопроходцам скидку большую давать? Но с тем самым красным текстом о том, что халява не вечна
︹︺ ВАДИМ ︺︹
А с ширпотребом (игры, свистелки всякие, перделки) как эффективнее? Фримиум, реклама ? Реклама встроенная вообще работает?
︹︺ ВАДИМ ︺︹
Александр
Тогда в головах отложится, что не буду платить - данные, что так долго вбивал, останутся недоступны
︹︺ ВАДИМ ︺︹
Dmitry
Vladimir
︹︺ ВАДИМ ︺︹
Vladimir
Или так, да
Dmitry
пролонгация триала действительно хороший мотиватор для просмотра рекламы.
︹︺ ВАДИМ ︺︹
Деда
😂
Dmitry
короче Apple вообще ебанулся, он и в категориях и в All-time все нахер поменял. Жесть.
Dmitry
Если это умышленно, то рейтинги сейчас все по нулям. Кто первый вольет деньги в рекламу, тот и в топе будет. Если это сбой, то наверно вернут.
Деда
Ты в курсе что мы с тобой братки? Так окрестили вчера
Donna
Один из, CRM для малого бизнеса..
Для бизнес решений надо продавать единый доступ ко всем платформам. Можно говорить: платите за десктоп, мобильный бесплатно, но главное чтобы доступ был по одному ключу. Обязательно триальный период, для crm месяца два-три. Бесплатно бизнес решение лучше вообще не давать работать: задолбаешься с беспланинками. Количество установок имеет смысл отслеживать только если это важно для бизнеса - то есть если например с мобильными ходят кладовщики то количество мобильных имеет смысл регулировать. Если главное - доступ к серверу, то проще разные тарифы по другим принципам считать.
Donna
Подписка для бизнеса вещь крайне тонкая - люди могут побояться переводить чувствительные данные в систему, которая зависит от ежемесячной оплаты: там лучше блоками например на год продавать.
Donna
Ощущение надёжности выше, если ты не Майкрософт и не Адоб ;)))
Деда
🤷♂️
bosozoku
Dmitriy
Anonymous
Я немного, но там сложна
bosozoku
о, любитель обжс)
Sergey
Sergey
Добрый день. Как в willFinishLaunchingWithOptions в AppDelegate открыть нужный мне VC не прибегая к смене rootVC?
Serhii
Sergey
Sergey
Нужно делать короче через Nav Controller?
Sergey
ну серьезно, ты же не описал свой кейс
Мне нужно при открытии приложения в определенные случаи, например когда у меня есть access_token открывать сразу экран работы, а не экран логина
Serhii
ну а чем плоха смена рута?
Sergey
она ломает мне переход unwindSegue
Sergey
на экран Логина
Serhii
то есть у тебя логин скрин всегда висит в стэке?
Sergey
Мне нужно к нему возвращаться, например когда пользовательно хочет разлогиниться
Sergey
кидает на экран логина
Sergey
Вызвать?
Tarik
Я обычно вообще в отдельный ксиб их выношу
Tarik
Ну да self.present(Vc, animated:book)
Александр
А выход вижу в собственной системе роутинга
Tarik
Александр
С segue кейс очень костыльно делать. Тут либо из экрана логина сразу делать переход после проверки (что не оч выглядит при дефолтной анимации), либо вкорячивать костыли с ручным роутингом. Но лучше тогда весь роутинг тогда вручную делать
Sergey
Спасибо
Деда
Что мешает рут оставить рутом а поверх него показывать экран с логином
Sergey
Деда
rootViewController, в нем модально покажи экран с логином, когда пользователь сделает все что нужно, закрой его
Bagdat
Добрый вечер ребята! У меня вопрос, можно костомизирвать Incoming call screen???
Деда
Bagdat
Никак
сам IOS не разрешает да?
Sergey
Sergey
А, кажется вроде понял
Dry
доброго вечера. могу сумбурно сформулировать, но постараюсь.
есть класс, который вызывает некоторый метод с комплишеном из некой структуры. в комплишене захватывается self. должен ли я использовать weak/unowned?
Serhii
Dry
Ок. я бы еще просто понять хотел )
Nikita
Ок. я бы еще просто понять хотел )
Проблема может возникнуть, если комплишн представляет из себя escaping closure и, таким образом, будет держать ссылку на твой self в течение фиг знает какого периода времени, порождая retain cycle. Так что да, если не уверен, используй weak/unowned
Dry
так и есть. Ок, спасибо. а если вместо класса была бы структура? Тогда не актуальна проблема?
Денис
objC. Есть некий протокол и нужно объявить второй точно такой же, но с измененным типом одного из параметров функции.
@protocol MyProtocol
…
-(void) foo: (id<OtherProtocol>) obj;
@end
Нужнен второй протокол с уточненным типом параметра:
@protocol MyProtocolSpecified
…
-(void) foo: (id<OtherProtocol, SecondOtherProtocol>) obj;
@end
Как это реализовать? Как я понимаю, наследование и переопределение функции с изменением типа параметра это есть плохой путь.
——————
Нашел вот что:
In general, Objective-C doesn't support contra- or co- variance (changing type of return value or arguments for the same method signature). In practice, it works as long as the arguments are of the same general type/size, but you'll run into problems (like the need to cast often). It is best to avoid doing this.
Т.е остается копипаст и дублирование кода?
Serhii
Ок. я бы еще просто понять хотел )
Так оф дока всегда рада помочь тебе)
Класс А (объект класса) держит структуру Б. Пока живет А, будет жить и Б (если только принудительно не занилить). У Б есть замыкание, в котором происходит захват Класса А. При захвате класса, количество ссылок на него увеличивается на 1. Получается структура Б не умрет, пока живет класс А. Класс А не умрет пока живет структура Б
Dry
Serhii
Денис
Деда
Serhii
Ну тут все стандартно
При разлогине нужно почистить все стейты, чтобы при повторном логине не вылезло какашек. В случае деинита всего стека - все гораздо проще.
Serhii
Не, конечно если рут это просто навигейшен то все ок, а если таббар, то появляется доп работа, если заранее не заложился на это
Деда