2010-06-02 8 views
2

Il s'agit plus d'un post de partage de la communauté qu'une vraie question. Dans mes projets iPhone OS, j'importe toujours une classe d'aide avec des méthodes utiles que je peux utiliser pour tous les projets.iPhone: classes utiles ou sous-classes étendues (catégories) qui auraient dû être dans le SDK

J'ai donc pensé que ce pourrait être une bonne idée, si tout le monde partage certaines de leurs méthodes préférées, qui auraient dû être dans la boîte à outils de tout le monde.

Je vais commencer avec une extension de la classe NSString, donc je peux créer des chaînes avec des dates à la volée en fournissant le format et les paramètres régionaux. Peut-être que quelqu'un peut trouver un besoin dans ce domaine.

@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 

Je serais ravi de voir certains de vos outils.

+1

wiki communautaire? – shosti

+0

édité sur le wiki de la communauté, merci – scud

Répondre

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

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

    return UIInterfaceOrientationPortrait; 
} 
@end 

Je l'utilise pour déterminer l'orientation avant toute autre chose que l'on appelle, aussi ceci:

@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 

qui renvoie des limites fondées sur l'orientation.

1
@implementation NSTimer (ECC) 

-(void) suspend:(BOOL)inSuspend { 
    [self setFireDate:inSuspend ? [NSDate distantFuture] : [NSDate dateWithTimeIntervalSinceNow:[self timeInterval]]]; 
} 

@end