ctorInBackground的sendSynchronous

ctorInBackground的sendSynchronous

我需要对某个网址进行几次https调用。所以我做这样的事情

//ViewController Source
-(IBAction) updateButton_tapped {
    [self performSelectorInBackground:@selector(updateStuff) withObject:nil];
}


-(void) updateStuff {
    // do other stuff here...
    NSMutableURLRequest* request = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:self.url]];
    [request setHTTPMethod:@"POST"];

    NSData *postData = [[Base64 encodeBase64WithData:payload] dataUsingEncoding:NSASCIIStringEncoding];
    [request setHTTPBody:postData];

    NSURLResponse* response = [[NSURLResponse alloc] init];
    NSData* data = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:nil];

    //Process the recieved data...

    //Setup another synchronous request
    data = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:nil];

    //Process data

    //do this another 4 times (note for loop cannot be use in my case ;) )

    //Finally update some view controllers
    [[NSNotificationCenter defaultCenter] postNotificationName:@"NotificationIdentifier" object:self];
}

因此,此代码的问题是它随机崩溃(并非总是崩溃,但经常崩溃)。我在日志上没有调试输出。有时我的整个应用程序死机,或者只是崩溃了整个程序。但是,如果我在主线程上运行它,它将永远不会崩溃。因此,我认为代码是正确的,现在我想它与iphone上的线程有关。

以这种方式运行代码时,可能会发生什么问题,以及可能导致随机崩溃的原因?

最佳答案

内存管理,分配后不释放请求或响应对象。

关于ios - iOS:具有performSelectorInBackground的sendSynchronousRequest,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9264699/

10-12 14:31