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

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
// last parameter is the setter code if value allowed to be set
#define SET_USING_CONFIG(cellSwitch,configKey,...)\
            cell.cellSwitch = [(EExhibitorsListConfigItem*)[self.configInfo configItemAtIndex:0] configKey];\
            if (cell.cellSwitch) {\
                __VA_ARGS__;\
            }

 SET_USING_CONFIG(isLikesCountOn, showLikes,
    cell.likesCount = exhibitor.Rating;
    cell.likedByMe  = exhibitor.IsRated; );

SET_USING_CONFIG(isInFavoritesOn, showFavoritesIndicator,
                     
    __weak EExhibitorCell *weakCell = cell;

    cell.didChangeFavouritesStateBlock = ^(BOOL newFavState) {
        [EExhibitorsListViewController updateFavoriteState:newFavState
                          ofExhibitor:exhibitor
                               inCell:weakCell];
    };
);

Define master!

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

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

  • Я конечно не изверг уже, но когда вижу код сложнее одной строки обернутый в макрос - хочется взять плоскогубци и зажать ими яйца писавшего это на часик другой.
    Ответить
    • > код сложнее одной строки обернутый в макрос
      Тут хуже... тут кусок тела передали параметром в макро... За такое надо зажимать не плоскогубцями, а в тиски, и на недельку.
      Ответить
  • Где здесь Objective-C? Ах, да, вижу: квадратные скобочки. А то мне на первый взгляд показалось, что это код из микрософтовских библиотек. Те ещё макроеды...
    Ответить
  • к спецам, а это с помощью "блоков" переписать можно было бы?
    Ответить

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

Я, guest, находясь в здравом уме и твердой памяти, торжественно заявляю:

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


    8