проверить, был ли успешно отправлен sendynchronousrequest - PullRequest
2 голосов
/ 15 сентября 2010

Я просто хотел узнать, правильный ли это способ проверить, был ли успешен отправляющий запрос:

NSData* returnData = [NSURLConnection sendSynchronousRequest:req returningResponse:nil error:nil];
if(returnData == nil)
{
    //code showing an alertView for example
}
else
{
    //do somthing else
}

Заранее спасибо за Ваш отзыв
Sean

Ответы [ 3 ]

0 голосов
/ 25 февраля 2013

Если вы работаете с HTTP, то вы также можете проверить код состояния. Например:

NSHTTPURLResponse *response;
NSError *error;
NSData *data = [NSURLConnection sendSynchronousRequest:request
                                     returningResponse:&response
                                                 error:&error];

if ((nil != data) && (200 == [response statusCode])) {
    // Process data
}
0 голосов
/ 24 апреля 2013

Правильный способ состоит в том, чтобы определить переменную ошибки, установив ее в ноль, и использовать ее ссылку в nsurlconnection, чтобы ошибка возвращалась в эту позицию памяти ссылки. Проверьте, что память равна нулю, и если успех равен нулю, если он имеет какую-либо действительную память, этоэто ошибка

NSError *error;
NSData *data = [NSURLConnection sendSynchronousRequest:request
                                     returningResponse:&response
                                                 error:&error];

if (error ==nil ) {
    // Success mechanism
}
else
{
 //Failure Mechanism
}
0 голосов
/ 15 сентября 2010

Я думаю, вы хотите передать что-то для вашей ошибки:

NSData* returnData = [NSURLConnection sendSynchronousRequest:req returningResponse:nil error:&error];

if(error != 0)
  // good to go
else
  // error

Но я могу ошибаться, просто быстро взглянул на это.

Я видел этот пост, хотя .. Я думаю, он спрашивает похожую вещь:

http://discussions.apple.com/thread.jspa?threadID=1647649

...