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

    −110

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    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, 08 Июля 2013

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

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

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