2011-04-25 4 views
0

i essayer d'utiliser ce code, mais je reçu l'erreur "TimeLabel non déclarés"timer erreur de Xcode

Comment puis-je le déclare TimeLabel. merci ..

merci à l'avance ... essayez d'obtenir le fonctionnement de la minuterie, mais semble-il une erreur avec le code ..

//In Header 
int timeSec = 0; 
int timeMin = 0; 
NSTimer *timer; 

//Call This to Start timer, will tick every second 
-(void) StartTimer 
{ 
    timer = [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(timerTick:) userInfo:nil repeats:YES]; 
    [[NSRunLoop currentRunLoop] addTimer:timer forMode:NSDefaultRunLoopMode]; 
} 

//Event called every time the NSTimer ticks. 
- (void)timerTick:(NSTimer *)timer 
{ 
    timeSec++; 
    if (timeSec == 60) 
    { 
     timeSec = 0; 
     timeMin++; 
    } 
    //Format the string 00:00 
    NSString* timeNow = [NSString stringWithFormat:@"%02d:%02d", timeMin, timeSec]; 
    //Display on your label 
    [timeLabel setStringValue:timeNow]; 
} 

//Call this to stop the timer event(could use as a 'Pause' or 'Reset') 
- (void) StopTimer 
{ 
    [timer invalidate]; 
    timeSec = 0; 
    timeMin = 0; 
    //Since we reset here, and timerTick won't update your label again, we need to refresh it again. 
    //Format the string in 00:00 
    NSString* timeNow = [NSString stringWithFormat:@"%02d:%02d", timeMin, timeSec]; 
    //Display on your label 
    [timeLabel setStringValue:timeNow]; 
} 
+0

Déclarer dans le fichier .h. – Ishu

+0

Je déclare déjà en .h en insérant UILabel * timeLabel et parvient à résoudre l'erreur mais le minuteur n'apparaît pas dans mes applications et j'ai encore un avertissement "UILabel ne peut pas répondre à '-setStringValue:'" – shy

+0

hie je parviens à comprendre l'avertissement en mettant @property (nonatomic, retain) étiquette IBOutlet UILabel *; @property (nonatomic, retain) IBOutlet UILabel * timeLabel; mais il semble ne fonctionne pas. Quelque chose me manque – shy

Répondre

2
In .h File write 
NSTimer *timer 

and make it as property 
@property(nonatomic,retain)NSTimer*timer 


and in .m file 
-(void)yourFunction 
{ 

    [timer invalidate]; 
    timer = nil; 
    timer = [NSTimer scheduledTimerWithTimeInterval: 1.5 target: self selector: @selector(yourFunctionYouWantToCall) userInfo: nil repeats: YES]; 
} 
-(void)YourFunctionYouWantToCall 
{ 

[timer invalidate]; 
    timer = nil; 

////Your Code her//// 
} 
0

Si le compilateur dit que timeLabel est noir, vous avez probablement oublié pour le déclarer parmi les variables d'instance de votre classe. Regardez dans votre fichier .h et voyez si vous avez une déclaration pour timeLabel. Si oui, affichez la section @interface de votre classe afin que nous puissions voir ce qui se passe.

+0

@interface AnimateViewController: UIViewController { \t \t UIImageView * imageView; \t Etiquette UILabel *; \t UILabel * timeLabel; } @property (nonatomic, retain) IBOutlet UIImageView * imageView; @property (nonatomic, retain) Étiquette IBOutlet UILabel *; @property (nonatomic, retain) IBOutlet UILabel * timeLabel; désolé im encore nouveau avec la programmation – shy

+0

Voir si les IBOutlets sont correctement connectés – visakh7