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

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
BOOL classDescendsFromClass(Class classA, Class classB)
{
    while(classA)
    {
        if(classA == classB) return YES;
        classA = class_getSuperclass(classA);
    }
    
    return NO;
}

Why not just use isSubclassOfClass: ?

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

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

  • А в Обж-С нет множественного наследования?
    Ответить
    • Для обьектов нет, есть только группы методов (точнее их сигнатур) именуемые протоколами - их можно до безконечности добавлять, но это чихня - атрибутов нет, реализаций в них нет, так что это просто для порядка.
      Ответить
      • > группы методов (точнее их сигнатур) именуемые протоколами
        Интерфейсы что-ли (в терминологии жабы)?
        Ответить
        • Да интерфейсами их называют, но тут есть коллизия - ключевое слово @interface обозначает обьявление нового класса, а для протоколов @protocol.
          Ответить
      • Для расширения функционала без наследования есть годная штука под названием «категория», их тоже можно добавлять по опупения. И там есть все, что можно делать при наследовании.
        Ответить
        • А ну добавь проперти или новое поле? А уж про "перегрузку" стандартных методов я молчу - сколько проблем создает.
          Ответить

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

Семь раз отмерь — один отрежь, guest!

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


    8