我想做一個異步調用,一個同步的。我知道這樣做不是一個好主意。但是,我確實需要這樣的代碼來處理自簽名證書的身份驗證挑戰,同時保持呼叫仍然同步。NSURLConnection使得異步調用Synch並處理自簽名證書
但是,我不確定這是否是讓Asycnh稱爲Synch的最佳方法。
-(NSData*) startConnection{
NSURLConnection *conn=[[NSURLConnection alloc] initWithRequest:request delegate:self startImmediately:YES];
while(!isFinished && [[NSRunLoop currentLoop] runMode: NSDefaultRunLoopMode beforeDate:[NSDate distantFuture]]){
}
return responseAppData;
}
- (void)connection:(NSURLConnection *)connection didReceiveAuthenticationChallenge:(NSURLAuthenticationChallenge *)challenge
{
//Code to handle Certificate
}
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data{
[responseAppData appendData:data];
}
- (void)connectionDidFinishLoading:(NSURLConnection *)connection{
isFinished=YES;
}
我也想過使用while循環如下,所以應該使用哪一個?
while(!isFinished){
}
更好的方法是使用塊編碼 –