2

我只是想知道这是否是检查 sendsynchronousrequest 是否成功的正确方法:

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

提前感谢您的反馈
肖恩

4

3 回答 3

0

正确的方法是定义一个错误变量,将其设置为 nil 并在 nsurlconnection 中使用其引用,以便在该引用内存位置返回错误。检查内存为 nil,如果 nil 成功,如果它有一些有效内存,则为错误

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

if (error ==nil ) {
    // Success mechanism
}
else
{
 //Failure Mechanism
}
于 2013-04-24T14:55:31.730 回答
0

我想你想为你的错误传递一些东西:

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

于 2010-09-15T15:41:17.383 回答
0

如果您使用的是 HTTP,那么您还可以检查状态代码。例如:

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

if ((nil != data) && (200 == [response statusCode])) {
    // Process data
}
于 2013-02-25T08:47:02.230 回答