Stanislav
нуу джава написана с ооочень сильными корнями в obj-c
Ну не совсем в Objective. Она написана с учетом того, что на нее C++ будут свичиться
Anonymous
где-то я там переписку разработчиков java видела..
Anonymous
http://cs.gmu.edu/~sean/stuff/java-objc.html вот
Anonymous
или это не разработчик java
Anonymous
блин, слышу звон, не знаю где он
Stanislav
В общем чисто по наблюдениям - один и тот же код написать сейчас на свифте и на обжективе - примерно в 1.5 медленнее (свифт медленнее). Может еще не привык просто. Примерно такие же результаты еще у одного разраба с работы. Особенно непривычно то, что они классы переименовали. Не сильно, но сбивает
Anonymous
Anonymous
Patrick Naughton
Stanislav
И собирается дольше
Anonymous
В общем чисто по наблюдениям - один и тот же код написать сейчас на свифте и на обжективе - примерно в 1.5 медленнее (свифт медленнее). Может еще не привык просто. Примерно такие же результаты еще у одного разраба с работы. Особенно непривычно то, что они классы переименовали. Не сильно, но сбивает
оу, ну у меня по началу тоже swift шел медленнее. И выглядело это как код имигранта из плюсов. Но он должен писаться в swift-стиле. Без всяких там self, желательно без проверок на эти nil, и прочие сишные штуки
Anonymous
И собирается дольше
это конечно да
Stanislav
А как вообще не проверять на nil? Всякие "?" или "guard"?
Stanislav
Я вчера пипец ногу отстрелил. Очень прикольное поведение есть. Допустим, есть метод в objective c, который принимает какой-то блок. Если в хидере правильно прописан тип блока, то при вызове из свифта все будет ок. А если тип параметра прописать как id, и попытаться привести к блоку уже в теле метода, то упадет на попытке выполнить блок
Stanislav
Это я уже сам тестил. Такая же фигня если у тебя массив блоков или словарь с блоками
Stanislav
Stanislav
Если кому интересно
Anonymous
А как вообще не проверять на nil? Всякие "?" или "guard"?
в идеале никак :) . func meow(purr: Purr? ) { let mrr = Mrr() purr?.setMrr(mrr) // если purr пустой, то произойдет ничего //но если очень хочется проверить кейс в случае null, то if let purr = purr { purr.setMrr(mrr) } else { //... } //или guard let purr = purr else { return //выход из функции } purr.setMrr(mrr) //а еще если совсем-совсем уверен что там есть значение, то можно так purr!.setMrr(mrr) }
Anonymous
а еще можно так if (purr! == nil) и так далее по классике
Stanislav
в идеале никак :) . func meow(purr: Purr? ) { let mrr = Mrr() purr?.setMrr(mrr) // если purr пустой, то произойдет ничего //но если очень хочется проверить кейс в случае null, то if let purr = purr { purr.setMrr(mrr) } else { //... } //или guard let purr = purr else { return //выход из функции } purr.setMrr(mrr) //а еще если совсем-совсем уверен что там есть значение, то можно так purr!.setMrr(mrr) }
Спасибо. В принципе сейчас если не уверен насчет nil - делаю guard и return, вообще нравится писать функции в таком стиле (неправильный параметр - выход) а во всяких контроллерах как-то само получается в основном «purr!»
Alfred
Не. Смысл тогда. Я на свифте как раз и хочу писать так, как предполагает свифт
если у тебя получается медленнее, значит ты что то делаешь не так
Stanislav
То есть тут все сразу начали на свифте фигачить быстрее чем на Objective?
Anonymous
Я вчера пипец ногу отстрелил. Очень прикольное поведение есть. Допустим, есть метод в objective c, который принимает какой-то блок. Если в хидере правильно прописан тип блока, то при вызове из свифта все будет ок. А если тип параметра прописать как id, и попытаться привести к блоку уже в теле метода, то упадет на попытке выполнить блок
дааа,у меня такое было со свифтовым Int, который не хотел приводится к NSNumber, указанному неявно в obj-c библиотеке. У меня на этапе компиляции в этом участке кода 20 минут комплиятор висел, а потом убивал себя kill -9 . И никаких ошибок не показывал, просто умирал.
Alfred
То есть тут все сразу начали на свифте фигачить быстрее чем на Objective?
Ну есть промежуток несколько дней, когда привыкаешь и вспоминаешь. Потом, по крайней мере, не медленее
Anonymous
То есть тут все сразу начали на свифте фигачить быстрее чем на Objective?
ну мне после c# было удобнее сразу на свифте писать..
Anonymous
Краш. Нил нельзя распаковать
ну если это ТАКОЙ nil, что даже Optional() не был создан, то да
Anonymous
но это неправильное тогда что-то
Anonymous
Краш. Нил нельзя распаковать
ну ненаю. Не вспомню сразу. Но вроде где-то использовала. Ладно. Как скажешь.
Maxud
поэтому только гард или if let a = pur
Anonymous
а еще можно так if (purr! == nil) и так далее по классике
тут же сразу краш будет, если purr nil
Anonymous
тут же сразу краш будет, если purr nil
наверное тогда просто надо purr == nil
Anonymous
Угу
Anonymous
точно, вот так значит делала
Maxud
а мне значит не поверила, да?
Maxud
мг
Maxud
😄
Maxud
ну мне кажется просто изза того что когда начали на обжектив нужно было время разобраться. С фреймворками, средой и тд. А на свифт перейти уже легче тк это уже знаешь
Stanislav
а какая разница?
Ну лично у меня дофига времени отнимали тормоза Xcode, отваливающийся автокомплит и все такое. Периодически хочешь дернуть метод из Objective, но его тупо нет в списке. Появляется только после ребилда проекта
Maxud
те дело не в языке
Stanislav
Впрочем на самом деле я думаю у меня сам проект довольно кривой, вот я и страдаю
Maxud
а еасли ошибка в кострукции, то тупо не показывает ошибку. Просто Editor failed и нет подсветки. Просто ошибка такая
Stanislav
Надо с нуля попробовать.
Maxud
Фамил
Фамил
Костыль костылей
Ερμής
>когда пытаешься на свифте писать как на обжс
Влад
Влад
не понимаю в чем может быть ошибка
Влад
-[__NSArrayM objectAtIndex:]: index 0 beyond bounds for empty array'
Ilkhom
ну в ошибке все ясно написано же
Влад
ну в ошибке все ясно написано же
я понимаю что массив пустой.
Stanislav
Ну тогда какие вопросы) Ты там по коду из него объекты убираешь, вот видимо все и убрал
denis
так что твои обвинения во влажных фантазиях не обоснованы.
да, сорри, с "влажными фантазиями" переборщил. твоя защита майлрушного теста как-то чрезмерно зацепила – просто потому что твой ответ по их мнению таки неправильный >__<
denis
Vladislavs
Это же куча
Vladislavs
Heap
Vladislavs
Инстанцируется на указатель
Vladislavs
Я прав?
Ερμής
Vladislavs
А правильный ответ какой
Anonymous
Инстанцируется на указатель
там возвращается указатель на нсстринг
denis
https://scontent.cdninstagram.com/t51.2885-15/e35/14350632_573072359538883_1417463687_n.jpg
Anonymous
Как программно сменить fontstyle на bold? облазил инет не нашел.
Anonymous
У чего?
Anonymous
лэйбла
Anonymous
круто
Anonymous
А так UIFont.systemFont(of: size, weight: UIFontWeightBold)
Anonymous
хочу так же
Anonymous
там custom font