iPhone: полезные классы или расширенные подклассы (категории), которые должны были быть в SDK

Это больше сообщение для сообщества, чем реальный вопрос. В своих проектах для iPhone OS я всегда импортирую вспомогательный класс с полезными методами, которые я могу использовать практически для каждого проекта.

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

Я начну с расширения класса NSString, чтобы я мог создавать строки с датами на лету, предоставляя формат и локаль. Может быть, кто-то найдет в этом потребность.

   @implementation NSString (DateHelper)

+(NSString *) stringWithDate:(NSDate*)date withFormat:(NSString *)format withLocaleIdent:(NSString*)localeString{ 
 NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
    //For example @"de-DE", or @"en-US"
 NSLocale *locale = [[NSLocale alloc] initWithLocaleIdentifier:localeString];  
 [dateFormatter setLocale:locale];

    // For example @"HH:mm"
 [dateFormatter setDateFormat:format];  

 NSString *string = [dateFormatter stringFromDate:date];

 [dateFormatter release];
 [locale release];

 return string;  
} 
@end

Я хотел бы увидеть некоторые из ваших инструментов.


person Community    schedule 02.06.2010    source источник
comment
отредактировано для вики сообщества, спасибо   -  person scud    schedule 09.06.2010


Ответы (1)


@implementation UIDevice (OrientationAddition)
- (UIInterfaceOrientation)vagueOrientation {

    if ([[UIApplication sharedApplication] statusBarFrame].size.height > 40){
        return UIInterfaceOrientationLandscapeLeft;
    }

    return UIInterfaceOrientationPortrait;
}
@end

Я использую его для определения ориентации до того, как будет вызвано что-либо еще, также в этом:

@implementation UIScreen (BoundsAddition)
- (CGRect)actualBounds {

    CGRect fakeBounds = self.bounds;
    if (UIInterfaceOrientationIsPortrait([[UIDevice currentDevice] vagueOrientation])){
        return fakeBounds;
    }

    return CGRectMake(0, 0, fakeBounds.size.height, fakeBounds.size.width);
}
@end

Который возвращает границы на основе ориентации.

person Tom Irving    schedule 03.06.2010