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

    −90

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    -(BOOL)isGetRest:(CGFloat)page {
        NSString *floatToString = [NSString stringWithFormat:@"%.2f",page];
        NSArray *sepArray = [floatToString componentsSeparatedByString:@"."];
        CGFloat rest = [[sepArray lastObject] floatValue];
        if(rest>0.0){
                 return YES;
        }
        else{
               return NO;
       }
    }

    А вы еще спрашиваете нужно ли программистам знать математику?

    Psionic, 11 Декабря 2013

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

    −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
    struct testStruct
    {
        char test[1024*1024*110];
    };
    
    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
    {
        logMemUsage();
        testStruct* test = new testStruct();
        NSLog(@"test mem: %d", sizeof(test));
        logMemUsage();
        delete test;
        logMemUsage();
    
       <...>
    }

    Особенности управления памятью в iOS 6.
    Без этого фрагмента на слабых устройствах может ВНЕЗАПНО понизить объём доступной для приложения памяти со 120 до 90мб.

    Почему-то не порнографических ассоциаций не возникает.

    krypt, 10 Декабря 2013

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

    −115

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    - (NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window {
    
    return (NSUInteger)[application supportedInterfaceOrientationsForWindow:window] | (1<<UIInterfaceOrientationPortrait);
    
    }

    Самый укуренный способ определить флаги UIInterfaceOrientation, который я видел.
    http://stackoverflow.com/questions/14533521/game-center-causing-uiapplicationinvalidinterfaceorientation ?answertab=votes#tab-top

    krypt, 06 Декабря 2013

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

    −122

    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
    - (void)_syncThread:(NSDictionary*)args
    {
    	NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
    	ERFeedStatusDB *feedStatusDB;
    	NSError *error = nil;
    	
    	[self retain];
    	
    	// Open FeedStatusDB
    	feedStatusDB = [[ERFeedStatusDB alloc] init];
    	if (![feedStatusDB openWithPath:[args objectForKey:ERFeedStatusDBSyncFilePathKey] error:&error])
    		goto error;
    		
    	// Perform the sync
    	NSAutoreleasePool *pool2 = [[NSAutoreleasePool alloc] init];	// workaround for SQLITE_BUSY issue during -[feedStatusDB close] call
    																	// (autoreleased objects are sticking around that keep the DB locked) 
    	[self performSyncOnBackgroundThreadWithParams:[args objectForKey:ERFeedStatusDBSyncParamsDictKey] feedStatusDB:feedStatusDB];
    	[pool2 release];
    	
    	[feedStatusDB close];
    	[feedStatusDB release];
    	feedStatusDB = nil;
    	
    	[self _setExecuting:NO];
    	[_executingCondition lock];
    	[_executingCondition signal];
    	[_executingCondition unlock];
    	
    	[self release];
    	[pool release];
    	return;
    	
    error:
    	[self notifyDelegateOfFailureWithError:error];
    
    	[feedStatusDB close];
    	[feedStatusDB release];
    	feedStatusDB = nil;
    
    	[self _setExecuting:NO];
    	[_executingCondition lock];
    	[_executingCondition signal];
    	[_executingCondition unlock];
    	
    	[self release];
    	[pool release];
    }

    Авторелиз пулы. Goto. [self retain] и [self release]. NSLock. Все это в кастомной реализации NSOperation.

    Код выносит прогулки по базе в бэкграунд. Другого способа, видать, не нашлось.

    Headless, 13 Ноября 2013

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

    −121

    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
    @interface MICheckBox : UIButton{
        BOOL isChecked;
        AppDelegate * appp;
    }
    @property(nonatomic,assign)BOOL isChecked;
    @property(nonatomic,retain)AppDelegate * appp;
    -(IBAction) checkBoxClicked:(id)tt;
    @end
    
    
    @implementation MICheckBox
    
    - (id)initWithFrame:(CGRect)frame {
        self = [super initWithFrame:frame];
        appp=(AppDelegate *)[[UIApplication sharedApplication]delegate];
    
        if (self) {
            self.contentHorizontalAlignment = UIControlContentHorizontalAlignmentLeft;
           [self setImage:[UIImage imageNamed:@"cb_dark_off.png"] forState:UIControlStateNormal];
           [self addTarget:self action:@selector(checkBoxClicked:)forControlEvents:UIControlEventTouchUpInside];
       }
        return self;
    }
    
    -(IBAction)checkBoxClicked:(id)tt{
        MICheckBox *ss = (MICheckBox *)tt;
    
        if(self.isChecked ==NO){
            self.isChecked =YES;
            [self setImage:[UIImage imageNamed:@"cb_dark_on.png"]forState:UIControlStateNormal];
    
            int JumpTo_swichCase = ss.tag/1000;
            NSLog(@"---------------------------------------------------------------");
            NSLog(@"AAAAAAA Which Swich CASE==%d",JumpTo_swichCase);
    
    switch (JumpTo_swichCase) {
                case 12:{
                    if(ss.tag>=12100){
                         NSLog(@"AAAAAAA CK.tag=%d",ss.tag);
                        int GG = ss.tag;
                        GG=GG-12100;
                         NSLog(@"You have Cheked CK===%@",[appp.Arr_ZWhyDiditHappen objectAtIndex:GG]);
                        [appp.ArrSTATUS_CKWhyDidHappen addObject:[appp.Arr_ZWhyDiditHappen  objectAtIndex:GG]];
                    }else if (ss.tag>=12000){
                        NSLog(@"AAAAAAA CK.tag=%d",ss.tag);
                        int GG = ss.tag;
                        GG=GG-12000;
                         NSLog(@"You have Cheked CK===%@",[appp.Arr_ZhowYouFelt objectAtIndex:GG]);
                        [appp.ArrSTATUS_CKHowyouFelt addObject:[appp.Arr_ZhowYouFelt objectAtIndex:GG]];
                    }
    }break;
    
    default:{
    }break;
    }
    }
    
    //------------------------------------------------------------------------------------------
        else{
        self.isChecked =NO;
        [self setImage:[UIImage imageNamed:@"cb_dark_off.png"]forState:UIControlStateNormal];
    
        int JumpTo_swichCase = ss.tag/1000;
        NSLog(@"---------------------------------------------------------------");
        NSLog(@"RRRRRRRR Which Swich CASE==%d",JumpTo_swichCase);
    
    switch (JumpTo_swichCase) {
        case 12:{
            if(ss.tag>=12100){
                NSLog(@"RRRRRRRR CK.tag=%d",ss.tag);
                int GG = ss.tag;
                GG=GG-12100;
                NSLog(@"You have Cheked CK===%@",[appp.Arr_ZWhyDiditHappen objectAtIndex:GG]);
                [appp.ArrSTATUS_CKWhyDidHappen removeObject:[appp.Arr_ZWhyDiditHappen  objectAtIndex:GG]];
            }else if (ss.tag>=12000){
                NSLog(@"RRRRRRRR CK.tag=%d",ss.tag);
                int GG = ss.tag;
                GG=GG-12000;
                NSLog(@"You have Cheked CK===%@",[appp.Arr_ZhowYouFelt objectAtIndex:GG]);
                [appp.ArrSTATUS_CKHowyouFelt removeObject:[appp.Arr_ZhowYouFelt objectAtIndex:GG]];
            }
        }break;
    
    default:{
    }break;
    }
    } 
    }

    Вот такой вот чекбокс. Пример использования внутри.

    ArtFeel, 18 Октября 2013

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

    −105

    1. 1
    2. 2
    3. 3
    4. 4
    - (void)reloadTableViewOnSecondaryThread
    {
    	[self performSelectorOnMainThread:@selector(reloadTableViewOnMainThread) withObject:nil waitUntilDone:NO];
    }

    Разглядывая код от заказчика нашёл вот такой перл!

    ProFFeSSoR, 06 Октября 2013

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

    −124

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    recognizer = [SMRecognizerConvNet alloc];
            
            dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,
                                                     (unsigned long)NULL), ^(void) {
                recognizer = [recognizer init];
                loaded = true;
                
                DLog(@"recognizer loaded");
            });

    Спонадобилось воскресить один старый проект, а там нашлось такое...

    tirinox, 04 Октября 2013

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

    −111

    1. 1
    Character * c = Character.alloc.init.autorelease;

    К чему приводит излишняя либеральность синтаксиса

    NAlexN, 10 Сентября 2013

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

    −105

    1. 1
    2. 2
    3. 3
    4. 4
    NSArray* arry = [NSArray arrayWithObjects:arrayWithObjects:prev, next, nil];
    [arry performSelector:NSSelectorFromString(@"retain")];
    //---
    [actionSheet performSelector:@selector(setTag:) withObject:arry];

    АРЦ нельзя кастовать указатели? Хватит это терпеть!

    Psionic, 05 Сентября 2013

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

    −114

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    - (void)setHidden:(BOOL)newHidden
    {
        [super setHidden:newHidden];
        if (newHidden){
            [m_bannerViewController hideBanner];
            return;
        }
        
        [self reload];
    }

    ZevsVU, 23 Августа 2013

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