1. Objective C / Говнокод #12834

    −107

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    - (void)cellButtonTapped:(UIButton *)sender
    {
        UITableViewCell* cell = (id) sender.superview.superview.superview;
        ...
    }

    Жечь в печах таких людей

    Запостил: notxcain, 01 Апреля 2013

    Комментарии (32) RSS

    • Ну и за * около типа, а не имени переменной!
      Ответить
      • Это бывает от очень большой лени )
        --
        не та кнопка )
        Ответить
      • И чего? * относится к типу, а не к переменной. Логичнее его именно так и писать. Хотя привычнее наоборот.
        Ответить
        • * как раз относится к переменной. Вроде. Точно не помню )
          Ответить
          • Страуструп говорит что пофиг где писать, лишь бы отвалили с тупыми вопросами.
            Ответить
        • int *a, b;

          Угадай кто из них указатель а кто просто переменная типа int?
          Ответить
          • Не нужно гадать, тут нужно знать, правила известны. Страуструп хотел ввести годный синтаксис для указателей, но труЪ-сишники начали писать кипятком, да и обратную совместимость никто не отменял.
            Ответить
            • хотел да не сумел, мы живем в рельно мире, и нужно писать нормальный код
              Ответить
              • если ты думаешь, что приклеивание звездочки к имени переменной внезапно сделает твой код нормальным, то я тебя расстрою
                ненормальный код как раз - объявить в одной строке сразу кучу переменных, указателей и ссылок, запутав мозги малоопытным коллегам
                можно еще там же указатели на функцию захерачить и даже зафорвардить конкретную функцию, чем не вариант
                когда одной фразой объявляется единственная сущность, становится всё равно с какой стороны у нее тюбитейка
                я, например, разделяю звезду и амперсанд пробелами с обеих сторон, повышает читабельность
                Ответить
                • Я так не пишу никогда.
                  Я привел пример, который явно показывает, что * следует писать около имени переменной.
                  Ответить
                  • Нихрена он не показывает.
                    Железной вилкой можно убить человека, не значит, что мы должные теперь вилки выкинуь и есть руками.
                    Ответить
                    • разбей простейшее объявление укзателя на токены и проанализируй, какой что значит.
                      Ответить
                  • Как сейчас помню, * рядом с переменной чаще всего можно встретить в C/С++ коде
                    В Objective-C принято ставить пробелы и до, и после
                    NSString * message = @"Hello";
                    Ответить
          • И? Это эксплуатация недостатка языка. Тем более адекватные люди в одной строке не объявляют указатель и неуказатель.
            Ответить
            • Не недостаток, а особенность - адекватные люди давно ее знают и на такие грабли не наступают.
              Ответить
    • Наверняка автор не подклассил UITableViewCell, а пилил все UI и логику нажатия на ячейки и кнопки в одном классе?
      Ответить
    • Та нормально. Как приходится разруливать контент напедаленный в Ксибе и не так извратишся/
      Ответить
      • так вас много таких
        Ответить
      • Благодаря таким как Вы, это сайт не умирает! К сожалению это единственный плюс...
        Ответить
        • Ущербный инструментарий (ХеКод) - ущербный код. Да и сам язык Обжси с Какаой тот еще полигон для костылей. Да еще заказчики нанимающие вебдизайнеров для дизайна иос приложений - нифига не знающих но требующих соответсвия дизайну.
          Ответить
          • Если не нравится ИксКод есть АппКод, очень годная среда, сам пользуюсь и рекомендую. Обж-цэ и какао полигон для костылей? Хм, хотел бы знать что вы считаете ровным языком и фреймворком... Заказчики везде одинаковы, но это не повод писать костыли, иначе вы автоматически опускаете себе до уровня индуса (т.е. дна)
            Ответить
            • > Заказчики везде одинаковы, но это не повод писать костыли
              К сожалению, если нужно реализовать какое-нибудь особо кастомное извращение, то рано или поздно костыли в коде появляются. Особенно, если дизайнер и заказчик за основу берут веб или же приложения, разработанные высококлассной командой.
              Ответить
              • >заказчик за основу берут веб или же приложения...
                ... или приложение, написанное под WP7.
                true story.
                Ответить
              • Ситуацию прекрасно понимаю, но это опять же не повод реализовывать чьи-то бредовые идеи. В таком случае надо так и объяснять заказчику - "Ваш дизайн, не подходит для iOS, бла-бла-бла, вот смотрите как это правильно делается (ссылки на приложения), и вообще почитайте гайдлайны (ссылка на гайдлайны)".
                Если заказчик уверен в своём идиотизме на все 100, то надо слать его подальше. Иначе рискуете взять не проект а головняк
                Ответить
                • Я не фрилансер, чтоб так свободно выбирать заказчиков.
                  Ответить
          • Как Икскод влияет на качество кода? Не понимаю.
            Ответить
            • Вы не поверите но да - его дурацкая автоподстановка, сколько раз я лепил через нее левые вызовы к обьекту. А эта задница с параметрами типа енум - сами значения в анонимных енамах, а тип енама задается через тайдеф - опять возростает шанс левый параметр залепить изза автоподстановки - же. А интерфейс билдер - когда я сним работаю у меня кончается запас мареных слов и мало того что корректно смержить его файлы в случае груповой работы не могут ни жит ни сабвершн так еще он не позволяет делать много тотго что безтруда задается кодом .
              Ответить
              • Автоподстановку в 2012 сделали более-менее адекватной.
                А вот xib, xcdatamodel, xcodeproj для версирования действительно не приспособлены.

                XML Layout Editor в Андроиде гораздо удобней IB, да.
                Ответить
    • Да, фиговый код. Но как обойти то? С учетом того что cell reusable.
      Иногда лучша написать такой код, нежели фигачить поверх структуру с красивым кодом строчек этак на 50.
      Ответить

    Добавить комментарий