- 1
- 2
- 3
- 4
- 5
- 6
- 7
@implementation NSString (toint)
- (long long)toInt {
if (self == nil) return 0;
if (self.length == 0) return 0;
return [self longLongValue];
}
@end
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
−101
@implementation NSString (toint)
- (long long)toInt {
if (self == nil) return 0;
if (self.length == 0) return 0;
return [self longLongValue];
}
@end
В этом коде все прекрасно. Я просто оставлю это здесь. Джава головного мозга.
−120
- (NSManagedObject *)entityForName:(NSString *)entityName withServerID:(NSString *)serverID inContext:(NSManagedObjectContext *)context
{
if ((entityName==nil) || ([entityName isEqualToString:@""]) || (serverID==nil) || ([serverID isEqualToString:@""]))
{
return nil;
};
NSFetchRequest *fr=[[NSFetchRequest alloc] init];
[fr setEntity:[NSEntityDescription entityForName:entityName inManagedObjectContext:context]];
[fr setPredicate:[NSPredicate predicateWithFormat:@"server_id == %@", serverID]];
[fr setIncludesPropertyValues:YES];
NSError *err;
NSArray *res=[context executeFetchRequest:fr error:&err];
if (err!=nil)
{
NSLog(@"PANIC: PTDataFetchHelper: entityWithName:serverID:inContext: an error occured while gathering objects. %@ | %@ | %@", err.localizedDescription, err.localizedFailureReason, err.localizedRecoverySuggestion);
return nil;
}
else
{
if ([res count]<=0)
{
NSLog(@"[res count]<=0");
//NSLog(@"PTDataFetchHelper: findEntity:%@ withServerID:%@ inContext: not found", entityName, serverID);
return nil;
}
else if([res count]>1)
{
NSLog(@"PANIC: PTDataFetchHelper: entityWithName:serverID:inContext: unable to fetch single object. server_id uniqueness error");
return nil;
}
else //[res count] == 1
{
return [res objectAtIndex:0];
};
};
}
Фетч
−115
user.status = (user.status == 0)?1:0
−104
//написали и нам на кодревью сказали что это Оо
if (([someobj1.index isEqualToNumber:someobj2.index] ? YES : NO)) {...}
//рефакторим в:
BOOL *check;
[someobj1.index isEqualToNumber:someobj2.index] ? (check=YES) : (check = NO)
if (check) {...}
//видим что среда ругается и наконец рождаем
if ([someobj1.index isEqualToNumber:someobj2.index]) {...}
перлы все тогоже джуна
−106
@implementation ESpeaker
EParticipantQueryGettersGroupForTypeWithSuffix(Speaker,SESSION_COUNT_OFF,LIKES_ON FAV_ON,kEDBAccessorTypePoolEventAndPrivate,ZERO_SESSION_COUNT_ON,);
EParticipantQueryGettersGroupForTypeWithSuffix(Speaker,SESSION_COUNT_ON_WITH_TYPE,LIKES_ON FAV_ON,kEDBAccessorTypePoolEventAndPrivate,ZERO_SESSION_COUNT_OFF,WithSessionCount);
@end
От авторов Objective-C говнокода месяца!
Первый в истории программирования класс, полностью реализованный на дефайнах!
Продолжение в комментариях!
−110
// 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!
−103
- (void)updateRating
{
[NSObject cancelPreviousPerformRequestsWithTarget:self
selector:@selector(delayedUpdateRating)
object:nil];
[self performSelector:@selector(delayedUpdateRating)
withObject:nil
afterDelay:0];
}
Коллега занес покушать.
Большой проект, для американцев, пишут ребята из Днепра...
−96
-(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
return
interfaceOrientation == UIInterfaceOrientationLandscapeLeft ||
interfaceOrientation == UIInterfaceOrientationLandscapeRight ||
false ? YES : NO;
}
Продолжаем тему укуренных сравнений
−99
- (void)initPlayerViewController
{
BOOL isSuccess = NO;
do {
NSString *linkString = nil;
unsigned long long objectID = [_videoID intValue];
int index = GetElementIndex(objectID, _WidevineTestStubs, WIDEVINE_TEST_COUNT);
if (index >= 0) {
//linkString = GetLink(_WidevineTestServers[index], _WidevineTestFiles[index]);
linkString = _WidevineTestLinks[index];
}
else {
linkString = GetString([_videoLink objectForKey:@"src"]);
}
if(linkString == nil)
goto _end;
self.linkType = GetLinkType(linkString);
switch (_linkType) {
case LINK_TYPE_HLS:
break;
case LINK_TYPE_WV_ADAPTIVE:
case LINK_TYPE_WV_MULTI:
linkString = WidevinePlay(linkString);
if ([linkString length] <= 0) {
goto _end;
}
break;
default:
goto _end;
}
NSURL *link = [NSURL URLWithString:linkString];
if(link == nil)
break;
self.playerViewController = [[[MPMoviePlayerViewController alloc] initWithContentURL:link] autorelease];
_playerViewController.moviePlayer.movieSourceType = MPMovieSourceTypeStreaming;
_playerViewController.moviePlayer.controlStyle = MPMovieControlStyleFullscreen;
NSInteger startPosition = GetInteger([_videoLink objectForKey:@"play_start_time"]);
if(startPosition > 0) {
_playerViewController.moviePlayer.initialPlaybackTime = (NSTimeInterval)startPosition;
}
[self addControlsView];
NSArray *audioTracks = [_videoLink objectForKey:@"audio_list"];
if ([audioTracks count] < 2) {
UIButton *audioButton = (UIButton *)[_controlsView viewWithTag:TAG_BUTTON_CHANGE_AUDIO];
audioButton.enabled = FALSE;
}
isSuccess = YES;
} while(0);
_end:
if(isSuccess) {
[_delegate onPlayerCreated:self];
[[UIApplication sharedApplication] setIdleTimerDisabled:YES];
}
else {
[_delegate onLinkError:self];
}
}
Тут есть все, и do while(0), и проваливающиеся case'ы, и TRUE/FALSE, и глобальные inline методы, и даже goto.
−89
const char *aPositionCString = [@"a_position" cStringUsingEncoding:NSUTF8StringEncoding];
GLuint aPosition = glGetAttribLocation(program, aPositionCString);
Вместо того, чтобы написать так:
GLuint aPosition = glGetAttribLocation(program, "a_position");