2010-08-22 8 views
2

J'ai eu ce problème bizarre à implanter NSURLConnection simples ...problème étrange avec appendData dans la méthode didReceiveData de NSURLConnection

La méthode didReceiveData me appeler et je suis en train heureux d'ajouter les données de réception, mais ... nada!

Il y a quelques données pour vous (comme la longueur indique, mais appendData ne rajoutez pas les données!

je commence à me cogner la tête sur celui-ci et je besoin d'aide avant qu'il ne soit à la fin :-)

Voici un code à regarder:

Mon-tête ...

@interface ActionViewController : UITableViewController { 
Site *site; 

NSURLConnection *siteConnection; 
NSMutableData *receivedData; 
    UIView *waitView; 
    UIActivityIndicatorView *activityIndicator; 

int nConnections; 
    BOOL fail; 
} 

Ma mise en œuvre ..

- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data 
{ 
    // Append the new data to receivedData. 
NSLog(@"Received %d bytes of data",[data length]); 
    [receivedData appendData:data]; 
NSLog(@"Received %d bytes of data",[receivedData length]); 
} 

- (void)connectionDidFinishLoading:(NSURLConnection *)connection 
{ 

    NSLog(@"Succeeded! Received %d bytes of data",[receivedData length]); 

[UIApplication sharedApplication].networkActivityIndicatorVisible = NO; 
[activityIndicator stopAnimating]; 
waitView.hidden = YES; 

    // release the connection 
    [connection release]; 
} 

La sortie de la console ...

[Session started at 2010-08-21 21:27:55 -0400.] 
2010-08-21 21:28:19.263 myApp[2042:207] Received 108 bytes of data 
2010-08-21 21:28:19.263 myApp[2042:207] Received 0 bytes of data 
2010-08-21 21:28:19.263 myApp[2042:207] Succeeded! Received 0 bytes of data 

Je ne comprends pas! AIDEZ-MOI!!!

BTW, les données est un simple résultat xml qui ressemble à ceci ...

<donnee>0</donnee><donnee>0</donnee><donnee>0</donnee><donnee>1</donnee><donnee>0</donnee><donnee>0</donnee> 

Répondre

12

Eh bien, ma réponse a obtenu dans une autre question sur ce site à propos NSMutableData ... oublié d'initialiser la chose! (code 18 ou un reste de l'envoi de message à zéro est une caractéristique de Nice d'Objective-C)

receivedData = [[NSMutableData alloc] init]; 
+2

Merci, ce même numéro me tue. – cksubs

+0

Ah un autre exemple de ma relation amour-haine avec la façon d'iOS d'échouer tranquillement. Rien à voir ici, ce ne sont pas les droïdes que vous cherchez. – Rydell