2011-08-23 2 views
0

Je suis confronté à un problème ennuyeux. J'ai une application qui est basiquement composé de plusieurs méthodes: viewDidLoad, connexion: didReceiveResponse, connexion: didReceiveData ...Les instructions dans viewdidload ne sont pas prises en compte

Dans mon viewDidLoad, je définir un NSURLRequest à un websiten personnel, et juste après et avant que j'ajouté un label.text = @ "xxx". Je sais que le problème ne vient pas de lier l'étiquette dans IB parce qu'elle affichait ce que je voulais.

Mais maintenant, il semble qu'aucune de ces deux instructions label.text ne fonctionne, même si je sais que mon NSURLRequest fonctionne parce que le nombre d'octets reçus change quand je change de site web ... Pourquoi? Et je suppose que les autres instructions qui suivent ne fonctionnent pas non plus.

Je vais donner plus de détails quand je peux au cas où quelqu'un pourrait m'éclairer à ce sujet.

Avoir une bonne journée et merci pour votre aide

- (void)viewDidLoad { 
[super viewDidLoad]; 
[email protected]"rrr"; 

request=[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://mywebsite.aspx?example=5"] cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:60.0]; 
[email protected]"aeza"; 

NSURLConnection *connection=[[NSURLConnection alloc] initWithRequest:request delegate:self]; 

if (connection) { 
    receiveddata=[[NSMutableData data] retain]; 
    [email protected]"NO BUG"; 
} 
else { 
[email protected]"BUG"; 
} 
datastring = [[NSString alloc] initWithData:receiveddata encoding:NSUTF8StringEncoding]; 

components=[datastring componentsSeparatedByString:@"|"]; 

label.text=datastring; 
[datastring release]; 
} 

-(void) connection:(NSURLConnection *)connection didReceiveResponse: (NSURLResponse  *)response 
{ 
[receiveddata setLength:0]; 
} 

-(void) connection: (NSURLConnection *)connection didReceiveData: (NSData *)data 
{ 
[receiveddata appendData:data]; 
} 

-(void)connection: (NSURLConnection *)connection didFailWithError:(NSError *)error 
{ 
[connection release]; 
[receiveddata release]; 
NSLog(@"Connection failed! Error - %@ %@", 
     [error localizedDescription], 
     [[error userInfo] objectForKey:NSURLErrorFailingURLStringErrorKey]); 
} 

-(void) connectionDidFinishLoading:(NSURLConnection *)connection 
{ 
NSLog(@"Succeeded! Received %d bytes of data",[receiveddata length]); 
[connection release]; 
[receiveddata release]; 
} 
@end 
+0

pouvez-vous fournir un lien vers un code ou en coller un ici pour examiner/ – cpjolicoeur

+0

vérifier vos objets dans le débogage lors de l'attribution des valeurs. Ils pourraient être NUL, donc leur envoyer des messages n'aurait aucun effet. – Vlad

+0

D'accord, j'ai modifié mon message avec mon code. Et Vlad, je vais vérifier ça. – Crafti

Répondre

0

Peu importe, je l'ai eu à travailler en déplaçant les instructions à une autre méthode.

+0

gentil. Donc, voici ce qu'ils appellent une réponse: S – Spire

1

Je propose que la logique de configuration à -viewWillAppear, plutôt que le -viewDidLoad.

+0

Je ne peux pas faire cela, mes affaires sont la fenêtre principale, je n'ai pas de vues – Crafti

Questions connexes