OOP - tilgå variabler fra et under-instance
Hej eksperter.Jeg er ved at lave et program i Objective-C men er lidt usikker på noget fundamental OOP, der overordnet set ikke er et specifikt Objective-C problem.
Here goes:
Jeg starter med (i initialiseringen) at oprette en række instances af klassen "Brugere". De lægges i et array ved navn "brugere"
Hver instance af Brugere (der også har tilknyttet en XIB) har en medlemsfunktion, der hedder "Næste bruger" og som aktiveres vha. en knap på brugerfladen.
Her er udfordringen: Når man trykker på knappen, har jeg brug for at vide, hvor mange brugere der er oprettet for at kunne vise brugerinterfacet for næste bruger og har derfor behov for at kunne tilgå array'et for at kunne tælle på dens længde.
Hvordan gør jeg det?
For at illustrere, meget overordnet:
Klassen "AntalBrugereViewController" opretter brugerinstances og definitionen er som følger:
#import <UIKit/UIKit.h>
#import "BrugerViewController.h"
@interface AntalBrugereViewController : UIViewController {
short int antalBrugere;
short int aktuelBruger;
BrugerViewController *bruger; // Klassen Bruger
NSMutableArray *brugere // Et array, der indeholder alle objekter af Bruger, så vi kan ha' mange af dem
}
@property (nonatomic, retain) NSMutableArray *brugere; // Vi skal kunne nå denne fra andre steder
@property (nonatomic, retain) BrugerViewController *bruger;
- (IBAction)vaelgAntalBrugere:(id)sender; // Man angiver manuelt, hvor mange brugere der er
@end
Her klassen, der oprettes brugere ud fra:
#import <UIKit/UIKit.h>
@interface BrugerViewController : UIViewController {
short int brugernummer; // Fra 3-6
short int antalForekomster;
BOOL foersteGang;
UIViewController *view;
}
@property short int brugernummer;
@property short int antalForekomster;
@property IBOutlet UILabel *toptekst;
@property (nonatomic, retain) UIButton *visNaesteBruger;
- (IBAction)vaelgTilfaeldigeForekomster:(id)sender;
- (IBAction)visNaesteBruger:(id)sender;
- (void) manuelInitialisering;
- (void) visSpiller;
@end
Som det ses, er det action "visNaesteBruger", der skal tælle variablen "aktuelBruger" én op (og hvis enden er nået, starte ved første bruger igen).
Array'et "brugere" bliver synthesized og har dermed getters og setters, men altså: hvordan tilgås de fra de instances, der bliver oprettet?