Bonjour,
J'ai un probleme de singeton :
J'ai une classe AppContextManager qui a un singleton :
J'enregistre des attributs dans ce singleton dans une classe ApiAppConfig :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 +(id) sharedManager{ @synchronized(self) { if(instanceManager == nil) { instanceManager = [[self alloc] init]; } } return instanceManager; }
tout va bien je vois bien mes attributs ! mais ce que je ne comprend pas c'est quand dans la classe HALManager j'ai mes attributs a nil !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 - (void)testHalManager{ MockAppConfiguration *mock = [MockAppConfiguration mockObject]; [[AppContextManager sharedManager] setAppConfiguration:mock]; NSLog(@"APP CONFIGURATION %@", [[AppContextManager sharedManager] appConfiguration]); NSLog(@"APP CONFIG %@", [[[AppContextManager sharedManager] appConfiguration] appConfig]); NSLog(@"WEBAPI2 %@", [[[[AppContextManager sharedManager] appConfiguration] appConfig] webAPI2]); HALManager * halManager = [[HALManager alloc] init]; [halManager provideHALClient]; }
ca fais un bon moment que je bloque dessus et je ne comprend pas pk. quelqu'un voit t'il une explication ?
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
29 -(ATEHALClient *) provideHALClient{ [ATEHALClient sharedHALClient].webAPIManager.oauth2Manager = [self provideOAuth2Manager]; NSLog(@"%@", [ATEHALClient sharedHALClient].webAPIManager.oauth2Manager); return nil; } -(ATEOAuth2Manager *) provideOAuth2Manager{ NSLog(@"APP CONFIGURATION %@", [[AppContextManager sharedManager] appConfiguration]); NSLog(@"APP CONFIG %@", [[[AppContextManager sharedManager] appConfiguration] appConfig]); NSLog(@"WEBAPI2 %@", [[[[AppContextManager sharedManager] appConfiguration] appConfig] webAPI2]); AppConfig * appConfigInfo = [[[AppContextManager sharedManager] appConfiguration] appConfig]; if(appConfigInfo == nil) { BKLogE(@"AppConfigInfo shoud not be nil"); return nil; } ATEOAuth2Manager * oauth2Manager = [[ATEOAuth2Manager alloc] init]; [oauth2Manager setBaseURL:appConfigInfo.authBaseUrl]; [oauth2Manager setAccessTokenURI:appConfigInfo.webAPI2.authAccessTokenURL]; [oauth2Manager setConcreteAuthorizationRegexes:appConfigInfo.webAPI2.concreteAuthorizations]; [oauth2Manager setupConcreteAuthorizations:appConfigInfo.webAPI2.authorizations]; return oauth2Manager; }
Merci d'avance
Partager