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

    −113

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    if ([_categories count] != 0) {
        for (NSString *item in _categories) {
            [path appendFormat:@"categories/%@/", item];
        }
    }

    Случайно обнаружил у себя :)

    Запостил: zummenix, 10 Апреля 2013

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

    • обнаружил у себя все, кроме родильной горячки (ц)
      Ответить
    • В чем говно, кроме лишнего if'а?
      Ответить
      • Как раз в этом и есть.
        Ответить
      • И не только.
        Есть такой метод, зовётся stringByAppendingPathComponent. Делает ровно то, что написано в её имени.
        Дал бы ссылку на референс, но какого-то фига сайт Эппла не открывается.
        Ответить
        • > stringByAppendingPathComponent
          Блин, как вы живете с такими именами...
          Ответить
          • string_by_appending_path_component ?
            Ответить
            • path = path / "categories" / item
              feel the power of the dark side.
              Ответить
              • Гыг, путь как подкласс строки с переопределенным оператором деления?
                Предлагаю тогда:
                path1 + path2 => слияние путей
                path1 / path2 => тоже (синтаксический сахар)
                path1 - path2 => преобразовать путь path1 в относительный с базой path2
                path-- => убрать последнюю часть пути
                Ответить
                • > Гыг, путь как подкласс строки с переопределенным оператором деления?
                  http://www.boost.org/doc/libs/1_53_0/libs/filesystem/doc/index.htm
                  Ответить
                  • Если правильно понимаю, то это алиас на /= , который в свою очередь оператор, соответствующий ф-ии "append".

                    Что не очень понятно - зачем тогда перегружать / ?
                    Ответить
                    • разницы между / и /= не видишь чтоли?
                      namespace fs = boost::filesystem;
                      void cache(fs::path const &);
                      // 1
                      cache(basepath / hash(filename) / filename);
                      // 2
                      fs::path tmp = basepath;
                      tmp /= hash(filename);
                      tmp /= filename;
                      cache(tmp);
                      Ответить
          • Спагетти-код? Не, не слышал )
            Ответить
          • Это _очень_ короткое имя для метода по меркам Obj-C.
            Ответить
            • У нее просто слишком мало параметров... судя по всему всего один?
              Ответить
            • +(NSMutableURLRequest *) formatRequest:(NSString *) urlString withRequestType:(NSString *) type withData:(NSString *) dataStr withParam:(NSMutableArray *) param withContentType:(NSString *) content autodetectProject:(BOOL)autodetectProjec t proRequest:(BOOL)isProRequest

              Один из эпичнейших методов в старом проекте, который едва не перенесли в новую библиотеку.
              Ответить
              • :) А как заменили?
                Ответить
                • Сделали UrlBuilder, которому последовательно ставили страницу, накидывали параметры запроса "ключ-значение" и в конце концов вызывали create.

                  Из-за того, что на тот момент не очень Objective-C знал, получился не шедевр, но жалоб не поступало.
                  Ответить
              • На фоне того, как пару дней назад Эппл пинками выгнали из АппСтора какую-то невзрачную контору со всего-то десятком миллионов пользователей, глядя на пытки которым подвергаются рядовые ОбжСи программисты невольно задумываешься о третьей волне.
                Ответить
                • Зато гугль не такой, жидята за нас, простых девелоперов стоят горой.
                  Совсем уже яблокофобы ебанулись.
                  Ответить
        • Не факт, что хотели добавить именно path component. Хотя, если это действительно так, то согласен.
          Ответить

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