2010-10-26 12 views
1

J'essaie d'utiliser une variable NSDate capturée dans une autre méthode. Après beaucoup de lecture et de recherche, j'ai pensé que j'ai trouvé la réponse sur ce site: http://www.everydayone.com/2009/08/nsdate-as-global-variable/. J'ai d'abord essayé de déclarer les variables dans AppDelegate.h comme spécifié dans l'article. Le résultat a été 2 échecs dans le fichier d'implémentation de ViewController: firstDate et startDate non déclarés. J'ai alors essayé de les déclarer dans le ViewController.h qui a permis au code de compiler sans erreurs. Cependant, lorsque la méthode s'exécute comme indiqué ci-dessous, l'application se bloque et le message "GDB: Program received signal: EXC_BAD_ACCESS" s'affiche. Si je ne commente pas la ligne "NSDate * today" et utilise cette variable au lieu de secondDate le code fonctionne bien. Votre aide serait grandement appréciée.Variable NSDate globale

.h:

@interface DatesViewController : UIViewController { 
    NSDate  *firstDate; 
    NSDate  *secondDate; 
} 

@property (nonatomic, retain) NSDate *firstDate; 
@property (nonatomic, retain) NSDate *secondDate; 

.m:

@synthesize firstDate; 
@synthesize secondDate; 

-(IBAction)getFirstDate:(id)sender{ 
    firstDate = [picker date]; 
} 


-(IBAction)getSecondDate:(id)sender{ 
    secondDate = [picker date]; 
    //NSDate *today = [[NSDate alloc] initWithTimeIntervalSinceNow:0]; 
    NSTimeInterval interval = [firstDate timeIntervalSinceDate: secondDate]; 

Répondre

0

Essayez référence à firstdate et secondDate comme

self.firstDate; 
self.secondDate; 

Aussi, assurez-vous qu'il n'y a aucun moyen pour getSecondDate() à être appelé avant getFirstDate(); vous ne vérifiez pas si firstDate existe ou est initialisé dans getSecondDate()