Das Senden vieler AsynchronousRequests führt zu einem Fehler
Frage
Ich versuche, mein Gerät mithilfe dieses Codes zu finden:
NSOperationQueue* quququ;
int i=0;
for (i=0; i<256; i++) {
//NSLog(@"%i",i);
NSString *url=[NSString stringWithFormat:@"http://%i.%i.%i.%i/",myip1,myip2,myip3,i];
//NSLog(@"urlGET = %@", url);
NSURLRequest* request = [NSURLRequest requestWithURL:[NSURL URLWithString:url] cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:1];
[NSURLConnection sendAsynchronousRequest:request queue:quququ completionHandler:^(NSURLResponse *respons, NSData *data, NSError *error) {
//do smth
NSLog(@"data: %ld bytes. res: %@, error: %@", (long)[data length], respons, error);
}];
Was mache ich falsch?Ich erhalte die Fehlermeldung „exc_bad_access“.
Lösung
In der ersten Zeile Ihres Codes deklarieren Sie lediglich eine NSOperationQueue-Referenz, haben jedoch kein NSOperationQueue-Objekt erstellt. Dies ist die Hauptursache für den Fehler „EXC_BAD_ACCESS“.Sie sollten zuweisen queue
mit einem NSOperationQueue-Objekt und verwenden Sie es dann.
Ändern Sie die erste Zeile Ihres Codes in
NSOperationQueue* quququ = [[[NSOperationQueue alloc] init] autorelease];
Dies wird Ihr Problem lösen.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow