EXC_BAD_ACCESS в ASIHTTPRequest / ASIFormDataRequest - PullRequest
1 голос
/ 16 февраля 2012

У меня проблемы с использованием ASIFormDataRequest.Похоже, что запрос выполнен, но когда я пытаюсь получить доступ к запросу после его завершения, я получаю ошибку EXC_BAD_ACCESS.Посмотрев вокруг, я не вижу никаких проблем с тем, что я делаю, поэтому я поворачиваюсь сюда.Кто-нибудь может определить, что я делаю неправильно?

Я получил основы кода здесь .

- (void)viewDidLoad
{
    /* Stuff here */
    NSURL *url = [NSURL URLWithString:@"http://www.mysite.com/login"];
    ASIFormDataRequest *request1 = [ASIFormDataRequest requestWithURL:url];
    [request1 setPostValue:@"email@email.com" forKey:@"email"];
    [request1 setPostValue:@"pass123" forKey:@"password"];
    [request1 setDelegate:self];
    [request1 startAsynchronous];
}

- (void)requestFinished:(ASIHTTPRequest *)thisRequest
{    
    NSLog(@"Request FInished: %@", thisRequest.responseStatusCode); //crashes here

    if (thisRequest.responseStatusCode == 403){
        NSLog(@"403 Not authorised");
    }
    if (thisRequest.responseStatusCode == 200)
    {
        NSLog(@"Data: %@", thisRequest.responseString);
    }
}

1 Ответ

1 голос
/ 16 февраля 2012

Проблема не в том, что запрос плохой, а в том, что вы пытаетесь напечатать int как объект. Изменить это:

NSLog(@"Request FInished: %@", thisRequest.responseStatusCode);

к этому

NSLog(@"Request FInished: %d", thisRequest.responseStatusCode);

или NSLog(@"Request FInished: %@", thisRequest); (если вы хотите распечатать полное описание запроса)

Вы фактически пытаетесь сказать «напечатать объект по адресу 0xresponseStatusCode», который не является допустимым объектом.

...