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

    −35

    1. 1
    2. 2
    3. 3
    4. 4
    -(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{  
      if (![_searchBarWhite.text isEqualToString:@""] || ![_searchBarBlue.text isEqualToString:@""]) {
            if (![[[LanguageList enumToString:[LanguageList indexOfItem:[[[[LanguageSelectDemon summon]getObjectAtIndex:indexPath.row]lastPathComponent]stringByDeletingPathExtension]]] lowercaseString] containsString:[[_searchBarWhite.text isEqualToString:@""]?_searchBarBlue.text:_searchBarWhite.text lowercaseString]]){
                return 0;}}}

    начальство заставило писать функции макс на 4 строчки, и которые делают "одну вещи", вот итоги...

    Запостил: 4oby, 06 Февраля 2016

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

    • >>[LanguageSelectDemon summon]

      Изыди, призванный демон, в адЪ!..
      Ответить
    • Методы класса в этом случае - это не очень хорошо. Да и вместо того чтобы реализовывать нормальную модель поиска, прятать по высоте ячейки - тоже не фонтан. А вообще можно переписать даже такое согласно требованиям (и читающие код не-iOS разработчики не скажут - что это за говно) (код поехал, http://pastebin.com/WctU6PMe):

      - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)path {
      if ([self searchText].length) {
      NSString *result = [self resultStringForIndexPath:path];
      if ([result containsString:[self searchText]]) {
      return 0.f;
      }
      }
      return 44.f;
      }

      - (NSString *)resultStringForIndexPath:(NSIndexPath *)path {
      NSString *demonString = [self demonStringForIndexPath:path];
      NSInteger idx = [LanguageList indexOfItem:demonString];
      return [LanguageList enumToString:idx];
      }

      - (NSString *)demonStringForIndexPath:(NSIndexPath *)path {
      LanguageSelectDemon *demon = [LanguageSelectDemon summon];
      NSString *source = [demon getObjectAtIndex:path.row];
      NSString *name = source.lastPathComponent.stringByDeletin gPathExtension;
      return name.lowercaseString;
      }

      - (NSString *)searchText {
      NSString *text = _searchBarWhite.text;
      return text.length ? text : _searchBarBlue.text;
      }
      Ответить
      • LanguageList - toolClass
        LanguageSelectDemon - singletonClass

        вот и "Методы класса"

        А вот с "LanguageSelectDemon *demon = [LanguageSelectDemon summon];"
        почти угадал))

        +(LanguageSelectDemon *)summon{
        if (!demon) {
        demon = [[LanguageSelectDemon alloc] init];

        [demon PrepareLanguagesData];
        [demon laodCurrentLanguageData];
        }
        return demon;
        }
        Ответить
    • >>
      (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)path {
      if ([self searchText].length) {
      NSString *result = [self resultStringForIndexPath:path];
      if ([result containsString:[self searchText]]) {
      return 0.f;
      }
      }
      return 44.f;
      }

      - (NSString *)resultStringForIndexPath:(NSIndexPath *)path {
      NSString *demonString = [self demonStringForIndexPath:path];
      NSInteger idx = [LanguageList indexOfItem:demonString];
      return [LanguageList enumToString:idx];
      }

      - (NSString *)demonStringForIndexPath:(NSIndexPath *)path {
      LanguageSelectDemon *demon = [LanguageSelectDemon summon];
      NSString *source = [demon getObjectAtIndex:path.row];
      NSString *name = source.lastPathComponent.stringByDeletin gPathExtension;
      return name.lowercaseString;
      }

      - (NSString *)searchText {
      NSString *text = _searchBarWhite.text;
      return text.length ? text : _searchBarBlue.text;
      }
      Мерещится мне въ этихъ древних строкахъ ложь первосвященников, Христа поправшихъ.
      Въебал минус.Освятил пост
      Ответить

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