Anonymous
просто код ужасный на картинке, вот и все
Alfred
поставили креш оператор и спрашивают почему креш
Alfred
лол
Ildar
спасибо :D
Ildar
хахаа
Anonymous
Вообще надо сделать, чтоб пока месяц в Xcode не отсидишь, ! печататься не будет
Alfred
Вообще надо ! запретить.
Andrew
месяц мало
Anonymous
мне месяца хватило, чтоб понять
Andrew
надо заставить человека на c++ и c попрогать
Anonymous
что это гроб гроб
Andrew
когда нормально сможет поработать там
Andrew
то ладно пусть пробует ! юзать
Anonymous
ну прям в тот момент, когда я открыл гарды
Anonymous
я просветлел
Alfred
а еще можно что бы компилятор подсвечивал на каждый ! ворнинг типа "Хаха, лох!"
Anonymous
Не, ну в некоторых местах можно
Anonymous
Когда ячейку кастуешь например
Anonymous
Там если не та ячейка, то упасть вполне разумно
Alfred
лол, начинается. там можно здесь можно
Alfred
нельзя!
Anonymous
ну когда ты прям "100% уверен мамой клянусь", то почему нет. последствия все равно на тебе лежат
Alfred
это всё бабские отговорки
Anonymous
¯\_(ツ)_/¯
Anonymous
мне просто лень писать гард в cellForRow
Alfred
просто не можешь продумать фолбэк
Anonymous
он длинный
Anonymous
else { return cell }
Anonymous
чо придумывать
Anonymous
только толку от него
Alfred
если длинный cellForRow надо что бы тоже компилятор говорил "И тут лоханулся!"
Anonymous
Любой cellForRow длинный, не?
Anonymous
я про первые строки
Anonymous
где dequeue
Vladislavs
лол, начинается. там можно здесь можно
хм, покажи как в обджс без ворнинга ячейку кастовать, пожалуйста
Anonymous
Просто для такого let cell = tableView.dequeueReusableCell(withIdentifier: "***Cell", for: indexPath) as! **TableViewCell гард писать реально нет смысла
Anonymous
не тот тип ячейки - краш
Anonymous
и это норм
Vladislavs
Нет, не норм
Anonymous
разве что можно фоллбек с fatalError сделать
Vladislavs
для этого есть конструкция if let
Anonymous
Почему?
Vladislavs
потому что краш - вообще не норм
Anonymous
Ммм, лишний уровень вложенности
Anonymous
потому что краш - вообще не норм
А то что другой тип ячейки, отличный от ожидаемого, норм?
Vladislavs
но мой вопрос про каст ячейки без ворнинга в обджс актуален
Anonymous
Такие вещи не проходят в продакшн
Vladislavs
А то что другой тип ячейки, отличный от ожидаемого, норм?
приоритеты расставляй, юзер увидет пустую UITableViewCell или увидет экран меню
Anonymous
у юзера вообще не должно возникнуть такой ситуации
Vladislavs
или тебя с крашем и fatalError в продакшн пускают?)
Alexander
так нужна конкретная ячейка
Alexander
а не пустая
Anonymous
Еще раз, такие вещи ВСЕГДА отлавливаются на этапе разработки
Anonymous
Ты блин делаешь таблицу
Anonymous
С одним типом
Anonymous
Как он вообще может не совпасть
Vladislavs
@alfredzien Мой вопрос все еще актуален
Anonymous
Плюс с гардом я еще некоторое время могу недоумевать, почему ячейки пустые. А если краш, то сразу понятно, что с типом ошибся
Anonymous
Поправил и все, больше оно ни при каких условиях не вылетит
Vladislavs
делается просто
Vladislavs
какой гард
Anonymous
А с if let дополнительный уровень вложенности, это уж точно ужас
Vladislavs
let cell = dequeReusable... if let cell = cell as? ZaloopaCell { ... } return cell
Vladislavs
вложеность видишь ты
Vladislavs
а не юзер
Anonymous
да вообще весь код вижу я, а не юзер, что уж там
Anonymous
а потом пишут по 5 вложенных ифов
Anonymous
смотреть больно
Vladislavs
а мне больно смотреть
Vladislavs
когда кто-то за тебя подумал и решил
Vladislavs
что почему-то это optional
Vladislavs
а ты ему суешь !
Vladislavs
и думаешь что самый умный
Anonymous
блять
Anonymous
логично, что dequeue может ячейку не вернуть
Anonymous
или не ту
Vladislavs
ладно, мне на мой вопрос не ответят
Vladislavs
я пошел
Anonymous
и это должно обрабатываться разработчиком
Anonymous
это не зависит от каких-то внешних условий