Субъективный Си / Говнокод #14507 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
+ (id) itemWithImage:(UIImage *)image_ // todo: WTF?
{
    return [[[self alloc] initWithImage:image_] autorelease];
}

Концентрация бреда стремится с 100%. Видимо в тот день я особенно сильно не выспался...
https://github.com/krypt-lynx/KLTileView/commit/468bc14dd0589d1dc9b08c32eb4da490965d5723

Запостил: krypt krypt, (Updated )

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

  • Без контекста непонятно.
    Разве что если self alloc, то вместо id – instancetype можно.
    Ответить
    • Контекст можно по урлу посмотреть.
      self alloc - плохая идея, хотя бы потому, что метод класса, а не экземпляра.
      Контекст по урлу виден. Там ещё тип у initWithImage другой и отличается от того, который объявлен в заголовке.
      Как оно вообще работало - я не представляю.
      Ответить
        • У компилятора от такой конструкции рвёт крышу и он начинает искать соответствия имён сообщений не там, где надо. Конкретно тут он решил, что класс self - UIImage, что вызвало некорректный warning
          Ответить
          • Шта? Это у тебя крышу сорвало 🙂 Все всегда так писали, и я всегда пишу [self alloc]. Никаких варнингов.
            Варнинг потому что ты классы перепутал, и у него нет такого метода, я подозреваю.
            Ответить
            • Нет, если в исправленном методе заменить [KLTileViewCell alloc] на [self alloc] то будет вернинг о том, что в initWithImage передаётся указатель типа UIImageVIew* вместо UIImage*, а попытка перейти к определению кинет на конструктор класса UIImage.

              Собственно там куча косяков по одному функционалу и с одними именами классов и переменных сошлись, из-за чего при беглом осмотре не получилось понять, что там вообще происходит.
              Ответить
            • Не открывается ссылка. Но это лажа провайдера 🙁
              Ответить
      • self в статике и есть класс, для параноиков можна [[self class] alloc]. А писать прямо имя класса, потом будут сюрпризы при наследовании.
        Ответить

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

Переведи на "PHP", guest!

    А не использовать ли нам bbcode?


    8