0
나는 객관적으로 C입니다. 로그인이 필요한 웹 사이트의 모바일 버전을 만들고 있습니다. 사용자 이름과 암호를 허용하는 방법을 찾고 있습니다. NSURLAuthenticationChallenge가 수신 된 후에 전달됩니다.NSURLAuthenticationChallenge 후 Objective-C 응답 기다림
Session.m
// log in
-(BOOL)logIn
{
if (([Password class] == [NSNull class]) || ([Password length] == 0))
return NO;
if (([Username class] == [NSNull class]) || ([Username length] == 0))
return NO;
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:URL_CONSTANT]
cachePolicy:NSURLRequestUseProtocolCachePolicy
timeoutInterval:10.0];
NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:request delegate:self];
[connection start];
if (!connection)
{
return NO;
}
return Connected;
}
// handle authentiaction challenge
-(void)connection:(NSURLConnection*)connection didReceiveAuthenticationChallenge:(NSURLAuthenticationChallenge *)challenge
{
NSLog(@"received auth challenge");
if ([challenge previousFailureCount] == 0)
{
NSLog(@"received auth challenge");
NSURLCredential *credentials = [NSURLCredential credentialWithUser:Username
password:Password
persistence:NSURLCredentialPersistenceForSession];
NSLog(@"credential created");
[[challenge sender] useCredential:credentials forAuthenticationChallenge:challenge];
NSLog(@"responded to auth challenge");
}
else
{
Connected = NO;
NSLog(@"previous auth failure");
}
}
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
{
NSLog(@"Data received");
Connected = YES;
}
사용자 이름과 암호가 모두의 UITextField에서 세션 개체에 전달되는 : 여기 내 코드입니다. 여기서 문제는 연결에 데이터가 도착하기 전에 NO가 반환된다는 것입니다. 자격 증명이 전달 될 때까지 기다린 후 자격 증명이 유효하면 응답을 기다리는 logIn 메서드를 어떻게 호출 할 수 있습니까?