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

    −112

    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
    +(NSString*)filterDigits:(NSString*)number
    {
        unichar zer = '0', nine = '9', cur;
        unsigned long l = [number length];
        NSMutableData *buf = [NSMutableData data];
        for (unsigned long j = 0; j!=l; j++)
        {
            cur = [number characterAtIndex:j];
            if (cur>=zer&&cur<=nine)
            {
                char digit = (char)cur;
                [buf appendBytes:&digit length:sizeof(char)];
            }
            
        }
        NSString* ret = [[[NSString alloc] initWithData:buf encoding:NSUTF8StringEncoding] autorelease];
        return ret;
    }

    Золотые у тебя руки парень. Но всеравно не оттуды растут (;

    Psionic, 11 Апреля 2013

    Комментарии (12)
  2. Objective C / Говнокод #12881

    −102

    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
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    67. 67
    68. 68
    69. 69
    70. 70
    71. 71
    72. 72
    73. 73
    74. 74
    75. 75
    76. 76
    77. 77
    78. 78
    79. 79
    80. 80
    81. 81
    82. 82
    83. 83
    84. 84
    85. 85
    86. 86
    87. 87
    88. 88
    89. 89
    90. 90
    91. 91
    92. 92
    93. 93
    94. 94
    @interface CORERatingImages : NSObject
    {
        UIImage *imageForOne;
        UIImage *imageForTwo;
        UIImage *imageForThree;
        UIImage *imageForFour;
        UIImage *imageForFive;
    }
    +(CORERatingImages *) ratingImages;
    -(UIImage *) getRatingImage:(int) ratings;
    @property (nonatomic, retain) UIImage *imageForOne;
    @property (nonatomic, retain) UIImage *imageForTwo;
    @property (nonatomic, retain) UIImage *imageForThree;
    @property (nonatomic, retain) UIImage *imageForFour;
    @property (nonatomic, retain) UIImage *imageForFive;
    -(void) releaseResources;
    @end
    
    static CORERatingImages *ratingImages = nil;
    
    @implementation CORERatingImages
    @synthesize imageForOne;
    @synthesize imageForTwo;
    @synthesize imageForThree;
    @synthesize imageForFour;
    @synthesize imageForFive;
    
    +(CORERatingImages *) ratingImages
    {
        @synchronized(self)
        {
            if (ratingImages == nil)
            {
                ratingImages = [[self alloc] init];
            }
        }
        return ratingImages;
    }
    -(id) init
    {
        if (self = [super init])
        {
            self.imageForOne = [UIImage imageNamed:@"1.png"];
            self.imageForTwo = [UIImage imageNamed:@"2.png"];
            self.imageForThree = [UIImage imageNamed:@"3.png"];
            self.imageForFour = [UIImage imageNamed:@"4.png"];
            self.imageForFive = [UIImage imageNamed:@"5.png"];
        }
        return self;
    }
    -(UIImage *) getRatingImage:(int) ratings
    {
        if (ratings == 1)
        {
            return imageForOne;
        }
        else if (ratings == 2)
        {
            return imageForTwo;
        }
        else if (ratings == 3)
        {
            return imageForThree;
        }
        else if (ratings == 4)
        {
            return imageForFour;
        }
        else if (ratings == 5)
        {
            return imageForFive;
        }
        else
        {
            return [UIImage imageNamed:@"0.png"];
        }
    }
    -(void) dealloc
    {
        NSLog(@"release Images");
        [imageForOne release];
        [imageForTwo release];
        [imageForThree release];
        [imageForFour release];
        [imageForFive release];
        [super dealloc];
    }
    -(void) releaseResources
    {
        [ratingImages release];
        ratingImages = nil;
    }
    
    @end

    Массив или stringWithFormat: @"%d.png"?

    Не, не слышал.

    QuickNick, 11 Апреля 2013

    Комментарии (15)
  3. Objective C / Говнокод #12879

    −113

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    if ([_categories count] != 0) {
        for (NSString *item in _categories) {
            [path appendFormat:@"categories/%@/", item];
        }
    }

    Случайно обнаружил у себя :)

    zummenix, 10 Апреля 2013

    Комментарии (21)
  4. Objective C / Говнокод #12877

    −113

    1. 1
    2. 2
    3. 3
    4. 4
    + (BOOL) isInteger:(CGFloat) number
    {
        return number - (int) number<0.0001;
    }

    В классе используется только ради того, чтобы при передаче нецелого флоата вывести километровый NSLog, в котором долго жаловаться на жизнь и полпикселя.

    Xtasy, 10 Апреля 2013

    Комментарии (39)
  5. Objective C / Говнокод #12834

    −107

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    - (void)cellButtonTapped:(UIButton *)sender
    {
        UITableViewCell* cell = (id) sender.superview.superview.superview;
        ...
    }

    Жечь в печах таких людей

    notxcain, 01 Апреля 2013

    Комментарии (32)
  6. Objective C / Говнокод #12823

    −99

    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
    - (CGPoint)itemTopLeftPoint
    {
        CGRect bounds = CGRectMake(0,0, 100, 100);// [[UIScreen mainScreen] bounds];
        CGFloat width = bounds.size.width;
        
        if (UIInterfaceOrientationIsLandscape(self.interfaceOrientation)) {
            width = bounds.size.height;
        }
        
        CGFloat x = 0, y = 0;
        
        x = (width - (self.numberOfItemsPerRow * AGIPC_ITEM_SIZE.width)) / (self.numberOfItemsPerRow + 1);
        y = x;
        return CGPointMake(x, y);
    }

    Приспичило мне тут показать кастомный контроллер в модальном окне. А он вместо контента показывает чушь, расчитанную под другую ширину.
    Обнаружено в ходе раскопок.

    krypt, 29 Марта 2013

    Комментарии (6)
  7. Objective C / Говнокод #12788

    −116

    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
    { 
        NSString *xContent = myTextView.text;
        
        //temp file filename
        NSString *tmpFileName = @"test1.html";
        
        //temp dir
        NSString *tempDir = NSTemporaryDirectory();
        NSLog(@"tempDirectory: %@",tempDir);
        
        //create NSURL
        NSString *path4 = [tempDir stringByAppendingPathComponent:tmpFileName];
        NSURL* url = [NSURL fileURLWithPath:path4]; 
        
        //setup HTML file contents
        NSString *filePath = [[NSBundle mainBundle] pathForResource:@"MathJax" ofType:@"js" inDirectory:@"mathjax-MathJax-v2.0"];
        NSLog(@"filePath = %@",filePath);
        
        //write to temp file "tempDir/tmpFileName", set MathJax JavaScript to use "filePath" as directory, add "xContent" as content of HTML file
        [self writeStringToFile:tempDir fileName:tmpFileName pathName:filePath content:xContent];
        
        NSURLRequest* req = [[NSURLRequest alloc] initWithURL:url]; 
        
        //original request to show MathJax stuffs
        [myWebView loadRequest:req];
    }
    
     -(void)writeStringToFile:(NSString *)dir fileName:(NSString *)strFileName pathName:(NSString *)strPath content:(NSString *)strContent{
        
        NSString *path = [dir stringByAppendingPathComponent:strFileName];
        
        NSString *foo0 = @"<html><head><meta name='viewport' content='initial-scale=1.0' />"
    "<script type='text/javascript' src='";
        
        NSString *foo1 = @"?config=TeX-AMS-MML_HTMLorMML-full'></script>"
        "</head>"
        "<body>";
        NSString *foo2 = @"</body></html>";
        NSString *fooFinal = [NSString stringWithFormat:@"%@%@%@%@%@",foo0,strPath,foo1,strContent,foo2];
        
        [fooFinal writeToFile:path atomically:YES encoding:NSUTF8StringEncoding error:nil];
    }

    http://new2objectivec.blogspot.com/2012/03/tutorial-how-to-setup-mathjax-locally.html

    Здорово, правда?

    UncleAli, 23 Марта 2013

    Комментарии (2)
  8. Objective C / Говнокод #12757

    −96

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    int arrayCount = [itemArray count];
    if( currentHeight < 10000 ) {
        currentItemType = random() % arrayCount;
    } else if( currentHeight < 50000 ) {
        currentItemType = random() % arrayCount;
    } else if( currentHeight < 100000 ) {
        currentItemType = random() % arrayCount;
    } else {
        currentItemType = random() % arrayCount;
    }

    Чем выше горы - тем рандомней сборы.

    NAlexN, 16 Марта 2013

    Комментарии (17)
  9. Objective C / Говнокод #12701

    −106

    1. 1
    NSString *locString = [NSString stringWithFormat:@"%@%@%@%@%@%@%@%@%@%@%@%@%@", model.QRCodeInfo.hostName, @"/get_menus.json?user_id=", model.QRCodeInfo.userId , @"&area_id=", model.QRCodeInfo.areaId, @"&lat=23.197927", @"&long=-50.938111", @"&nick=", model.QRCodeInfo.nickName, @"&uid=", model.QRCodeInfo.udid, @"&host_name=", model.QRCodeInfo.hostName];

    Конкатенация по-пакистански

    sxua, 07 Марта 2013

    Комментарии (30)
  10. Objective C / Говнокод #12648

    −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
    - (void)shutdown {
        ...
        // shutdown routine
        ...
        [self retain];
        dispatch_async(_decodeQueue, ^{
            [self cleanup];
        });
    }
    
    - (void)cleanup {
        [self release];
    }

    Старый-добрый memory management.
    Между прочим, код из платной библиотеки...

    clockworkman, 25 Февраля 2013

    Комментарии (13)