2012-10-26 1 views
2

J'ai une catégorie NSDate avec méthode suivantetype pointeur Incompatible envoi « classe » au paramètre de type « NSDate * »

@implementation NSDate (DateUtility) 

+(NSString *)dateTimeStringForDB { 
    NSDateFormatter *dateFormatForDB = [[NSDateFormatter alloc] init]; 
    [dateFormatForDB setDateFormat:@"yyyy-MM-dd HH:mm:ss"]; 
    NSString *aDateStr= [dateFormatForDB stringFromDate:self]; 
    [dateFormatForDB release]; 
    return aDateStr;  
} 
@end 

avec cette définition que je reçois un avertissement.

type pointeur Incompatible envoi 'classe' au paramètre de type 'NSDate *'

de type coulée Cependant auto avant l'affecter comme argument supprime cet avertissement. Pouvons-nous vraiment ne pas passer le soi en tant qu'argument dans une catégorie sans le typer? Non. De quoi dépend cette fonctionnalité, le compilateur? Vous cherchez une réponse avant de l'afficher comme une question sur SO je suis tombé sur this, mais je ne suis toujours pas clair quant à ce qui se passe derrière la scène.

Répondre

5

Vous avez créé une méthode de classe, je suppose que vous voulez vraiment une méthode d'instance. Je suppose que vous voulez convertir une instance d'un NSDate (c'est-à-dire un objet) en une représentation NSString. Actuellement, vous essayez de convertir la classe réelle NSDate en une représentation NSString.

changement

+(NSString *)dateTimeStringForDB { 

à

-(NSString *)dateTimeStringForDB { 
+0

Merci, Je ne sais pas pourquoi, mais je viens de manquer ça. –

Questions connexes