Bonjour à tous,
j'ai créé une classe dérivée de UIViewController, que j'instancie à l'aide d'une méthode initWithTrame: qui appelle initWithNibName:bundle: comme ceci,
myViewController.h
myViewController.m
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 @interface myViewController : UIViewController { NSString * confID; NSString * confName; // Config Dimension NSUInteger configHeight; NSUInteger configWidth; } @property(retain,nonatomic) NSString * confID; @property(retain,nonatomic) NSString * confName; @property NSUInteger configHeight; @property NSUInteger configWidth; @end
Quand j'exécute le code pas à pas, j'observe ceci:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 @implementation myViewController @synthesize confID,confName,configHeight,configWidth; -(id)initWithTrame:(NSDictionary *)trameInit{ NSString * nibName; if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) nibName=@"myView_iPad"; else nibName=@"myView_iPhone"; if(self=[super initWithNibName:nibName bundle:nil]){ if([trameInit objectForKey:PDUTYPECONFID]!=nil) self.confID=[trameInit objectForKey:PDUTYPECONFID]; else self.confID=@"0"; self.confName=[trameInit objectForKey:PDUTYPECONFNAME]; NSUInteger h=[[trameInit objectForKey:INITHEIGHT] intValue]; NSUInteger w=[[trameInit objectForKey:INITWIDTH] intValue]; self.configHeight=h; self.configWidth=w; } return self; } @end
h et w sont corrects après leur affectation (h=1400, w=1920), puis, en passant sur la ligne self.configHeight=h, c'est configWidth qui prend pour valeur 1400 (???), quand je passe ensuite sur self.configWidth=w, rien ne se passe.
Je me retrouve avec:
h=1400
w=1920
configHeight=0
configWidth=1400
Je n'arrive pas à saisir ce qu'il se passe pendant l'initialisation pour arriver à des résultats pareils. Si quelqu'un peut m'expliquer j'en serai ravi.
Merci d'avance.
Partager