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

    −387

    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
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    - (BOOL)validateLoginData
    {
        self.phone = [Utils phoneFromFormat:[_loginMaskField maskedTextField].text];
        
        if(![Utils validatePhone:self.phone]) {
            [_loginMaskField shakeView]; // <-- Здесь автор анимирует вьюху ввода телефона.
            return NO;
        }
        <...>
    }
    
    #pragma mark - Telephone mask
    + (NSString *)phoneFromFormat:(NSString *)format
    {
        int d = 1;
        if(format.length == kPhonelength + d) //17
        {
            const char *cFormatString = [format UTF8String];
            char *phoneString = malloc(10 * sizeof(char));
            phoneString[0] = cFormatString[5 + d];
            phoneString[1] = cFormatString[6 + d];
            phoneString[2] = cFormatString[7 + d];
            phoneString[3] = cFormatString[9 + d];
            phoneString[4] = cFormatString[10 + d];
            phoneString[5] = cFormatString[12 + d];
            phoneString[6] = cFormatString[13 + d];
    //        phoneString[7] = cFormatString[15];
    //        phoneString[8] = cFormatString[16];
    //        phoneString[9] = '\0';
            phoneString[7] = '\0';
            NSString *phone = [NSString stringWithUTF8String:phoneString];
            free(phoneString);
            return phone;
        }
        else {
            return nil;
        }
    }
    
    + (BOOL)validatePhone:(NSString *)phone
    {
        if(phone.length == kPhoneCountDigits)
        {
            NSString *regexpString = @"^[0-9][0-9]*$";
            NSPredicate *test = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", regexpString];
            return [test evaluateWithObject:phone];
        }
        else {
            return NO;
        }
    }

    Валидируем введённый номер телефона. Кажется, я нашёл нового Евгения.

    Запостил: krypt, 16 Июня 2015

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

    • слишком сложный говнокод, над каким методом смеяться?
      Ответить
      • над вот этим

        phoneString[0] = cFormatString[5 + d];
        phoneString[1] = cFormatString[6 + d];
        phoneString[2] = cFormatString[7 + d];
        phoneString[3] = cFormatString[9 + d];
        phoneString[4] = cFormatString[10 + d];
        phoneString[5] = cFormatString[12 + d];
        phoneString[6] = cFormatString[13 + d];
        Ответить
        • Это не метод, это инициализация массива методом царского анролла (для пирфоманса). Смешной метод там validatePhone, который валилидирует такой телефон: «а000».
          Ответить

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