NSCalendarDate
macvelotte
Membre
On trouve dans l'aide de XCode cet exemple de définition d'une nouvelle date :
NSCalendarDate *now = [NSCalendarDate calendarDate];
NSCalendarDate *nextWeek = [now dateByAddingYears:0 months:0
days:7 hours:0 minutes:0 seconds:0];
J'écris "bêtement" ce code ...
réponse à la complilation : cannot find method dateByAddingYears ....
Les exemples de code donnés par Apple seraient-ils faux ????
NSCalendarDate *now = [NSCalendarDate calendarDate];
NSCalendarDate *nextWeek = [now dateByAddingYears:0 months:0
days:7 hours:0 minutes:0 seconds:0];
J'écris "bêtement" ce code ...
réponse à la complilation : cannot find method dateByAddingYears ....
Les exemples de code donnés par Apple seraient-ils faux ????
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Soit tu as fait un copier/coller malheureux, soit tu as recopié l'exemple en faisant une faute de frappe (majuscule au lieu de minuscule)...
Moi je te donne mon exemple :
[tt]
NSCalendarDate *d;
d=[NSCalendarDate calendarDate];
NSLog(@%@", d);
d=[d dateByAddingYears:0 months:2 days:0 hours:0 minutes:0 seconds:0];
NSLog(@%@", d);
[/tt]
ce qui donne dans la fenêtre de run log de Xcode :
.
NSCalendarDate *jourlune;
jourlune=[cejour dateByAddingYears:0 months:0 days:jr hours:he minutes:mi]; où jr,he et mi sont des int.
Et bien, ça ne marche pas !
Et... Où est le paramètre seconds: dans ton exemple ?
Car effectivement, la méthode de Apple, c'est dateByAddingYears:months:days:hours:minutes:seconds:, et non dateByAddingYears:months:days:hours:minutes: !
.
Mais je suis toujours aussi perplexe devant "l'aide" de XCode, c'est-à -dire que je n'ai pas encore compris comment on fait !
[tt]
-(void)dealloc
{
[date release];
[timer invalidate];
}
-(void)awakeFromNib
{
NSCalendarDate *date=[[NSCalendarDate calendarDate] retain];
timer=[NSTimer scheduledTimerWithTimeInterval:60 target:self selector:@selector(changeDate userInfo:nil repeats:YES];
}
-(void)changeDate:(NSTimer *)timer
{
date=[date dateByAddingYears:0 months:0 days:0 hours:0 minutes:5 seconds:0];
}
[/tt]
Je vais essayer d'adapter ton exemple à mon programme .
Merci!
le code suivant ne marche pas
et conduit au message d'erreur :NSTimer discarding exception 'NSInvalidArgumentException' (reason '*** -[Ephemerides misealheure]: selector not recognized') that raised during firing of timer with target 3411a0 and selector 'misealheure'
Mais, autre question : comment "synchroniser" l'horloge de mon application avec celle du Mac ?
il y a cepandant le risque de tomber à côté, mais on peut faire quelque chose comme ça:
en gros, on regarde si le nombre de minutes a changé, et si oui on le sauvegarde et on effectue le code voulu...
edit:
merci fouf ! :fouf):
NSCalendarDate *d; -> faut pas oublier le *