2010-11-21 8 views
-1

Dans l'exemple suivant, lorsque l'écran en contact avec une méthode est appelé, un numéro est transmis au contrôleur de vue stocké par MyViewController. Seul problème le contrôleur de vue ne stocke pas le numéro puisque je veux l'utiliser plus tard dans une autre méthode. S'il vous plaît aider. Je vous remercie.Comment passer et stocker des informations via des méthodes

MyViewController.h

@class MyView; 

@interface ViewController : UIViewController { 
    int number; 
} 

-(void)assignNumber(int)sentNumber; 

@property int number; 

MyViewController.m

-(void)loadView { 
    MyView *aView = [[MyView alloc] initWithFrame:wholescreen]; 
    self.view = aView; 
    [aView release]; 
} 

-(id)initWithNibName...... { 
    number = 0; 
} 

-(void)assignNumber:(int)sentNumber { 
    number = sentNumber; 
} 

MyView.h & MyView.m

par défaut avec TouchesBegin, quand on les touche [viewController assignNumber:5];

+0

Quel contrôle avez-vous exécuté pour déterminer si 5 est stocké en nombre? –

Répondre

1

Si vous ne déclarez pas @synthesize, vous ne pourrez pas accéder au numéro en dehors des composants internes de viewController. Essayez d'ajouter

@synthesize number; 

en haut de MyView.m; Cela crée des setters et des getters. puis, vous pouvez remplacer votre

[viewController assignNumber:5]; 

appel avec

[viewController setNumber:5]; 

et accéder soit viewController.number ou [viewController number].

+0

'@ synthesize' dit simplement au compilateur d'implémenter des accesseurs pour une propriété. Vous devez avoir déjà déclaré la propriété dans @ l'interface de la classe (dans le fichier d'en-tête), et faire * cela * est ce qui expose la propriété aux objets d'autres classes. Inversement, tant que vous déclarez la propriété (ou ses méthodes d'accès individuellement) dans '@ interface', vous pouvez implémenter les accesseurs tels que vous le souhaitez - faites le compiler (@ synthesize) ou implémentez-les vous-même; il ne semblera pas différent des autres objets qui utilisent la propriété. –

0

Vous pouvez @synthesize la variable nu mber dans votre implémentation ViewController.

Questions connexes