didReceiveAuthenticationChallenge, вызывающий EXC_BAD_ACCESS - PullRequest
2 голосов
/ 22 февраля 2010

Если веб-сайт не требует аутентификации, мой код работает нормально, если он делает это, он выдает ошибку с EXC_BAD_ACCESS сразу после печати «учетные данные созданы». Я ничего не выпускаю, и этот код скопирован прямо из документации - есть идеи, что случилось?

- (void)connection:(NSURLConnection *)connection didReceiveAuthenticationChallenge:(NSURLAuthenticationChallenge *)challenge {
 if ([challenge previousFailureCount] == 0)
 {
  NSLog(@"received authentication challenge");

  NSURLCredential *newCredential;
  newCredential=[NSURLCredential credentialWithUser:@"root"
             password:@"rootpassword"
             persistence:NSURLCredentialPersistenceForSession];


  NSLog(@"credential created");

  [[challenge sender] useCredential:newCredential forAuthenticationChallenge:challenge];

  NSLog(@"responded to authentication challenge");

 }
 else
 {
  NSLog(@"previous authentication failure");

  UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Authentication Failure" 
              message:@"Website did not accept the username and password."
                delegate:nil
             cancelButtonTitle:@"OK" 
             otherButtonTitles:nil];
  [alert show];
  [alert release];
 }
}

Ответы [ 2 ]

1 голос
/ 01 марта 2010

Оказывается, это как-то связано с этим конкретным методом аутентификации сайтов - замена сайта, на который я хочу войти, другим сайтом, и код работает нормально.

(Я пытался очистить данные со страницы состояния unRaid, unRaid не использует реальный веб-сервер, но emhttp, поэтому я предполагаю, что это как-то связано с этим)

0 голосов
/ 22 февраля 2010

Единственное, что вы не контролируете, это возвращаемое значение [challenge sender]. Попробуйте напечатать его описание, чтобы убедиться, что оно не ноль.

...