안녕하세요, 사용자 이름과 비밀번호를 사용하여 로그인해야하는 iOS 앱을 만들고 있습니다.이 사용자 이름과 비밀번호는 인증 될 웹 서버로 전송됩니다. 요청을 보내고 응답을 기다리는 동안 UIActivityIndicator를 표시합니다.UI가 회 전자를 즉시 표시하지 않습니다.
내가보기에 문제는 UIActivityIndicator가 곧바로 버튼을 눌렀을 때 나타나고 몇 초가 지나면 나타납니다. UI를 업데이트하기 전에 OS가 다른 스레드를 실행하고 있기 때문에 추측하고 있지만 누군가가이 언젠가 지연을 일으킬 수 있는지 또는 내 코드가 잘못되었음을 알고 있는지 알고 싶습니다. 아래
내 코드 :
-(void)loginPressed:(id)sender{
if ([self validateForm]) {
[self startLoadingAnimation:@"CONNECTING"];
[Session theSession].authenicatedUsername = usernameTextField.text;
[Session theSession].authenicatedPassword = passwordTextField.text;
usernameTextField.text = @"";
passwordTextField.text = @"";
[self setUserDetailsBasedOnUserID:[Session theSession].authenicatedUsername password:[Session theSession].authenicatedPassword];
}else {
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"MISSING_LOGIN_DETAILS_TITLE", @"")
message:NSLocalizedString(@"MISSING_LOGIN_MESSAGE", @"")
delegate:self
cancelButtonTitle:NSLocalizedString(@"OK_BUTTON", @"")
otherButtonTitles:nil];
[alert show];
[alert release];
}
}
감사
당신은 잠재적으로 서버가 응답 할 수있는 긴 시간을 기다리는 동안, 그렇지 않으면, 당신은 (주 (UI) 스레드를 차단하는 것, 비동기 네트워킹 않는해야
감사 OMZ. 안타깝게도 앱이 사용하는 모든 데이터가 최신 상태 여야하고 휴대 전화에 아무것도 저장할 수 없기 때문에 사용자 대기를해야합니다. – williamb