获得和错误没有错误

时间:2011-12-08 21:56:09

标签: objective-c ios nsurlconnection nserror

出于某种原因,当我执行NSURLConnection时没有错误,我收到错误。

NSLog(@"Sending string to server. ID:11118");
    NSData *urlData = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
    NSLog(@"Response from server received. ID:11119");
    NSString *responseString = [[NSString alloc]initWithData:urlData encoding:NSUTF8StringEncoding];

if (&error)
    {
        //Handle Error
        NSLog(@"Error getting a server response! (scm) Error %i: %@", [error code], [error localizedDescription]);
        UIAlertView *theAlert = [[UIAlertView alloc]initWithTitle:@"Error getting a server response!" message:[NSString stringWithFormat:@"Error %i: %@", [error code], [error localizedDescription]] delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
        [theAlert show];
    }

它显示警告,[error code]显示0[error localizedDescription]显示Null

有什么想法吗?

3 个答案:

答案 0 :(得分:7)

请勿检查NSError个对象以确定是否发生了错误。按照惯例,您应该检查生成错误的方法的返回值。如果结果为nilNO,则应该继续检查错误。此外,您没有检查错误对象,而是检查错误对象的内存中地址的有效性。

在您的情况下,只有urlDatanil时才会继续检查错误。

答案 1 :(得分:-1)

问题是你正在检查错误对象的地址。你需要检查对象本身。

if (error != nil)

而不是

if (&error)

后一种形式评估错误对象的地址,该地址将非零,因此您的错误条件将始终运行。

(并且不要忘记事先将错误值设置为nil。)

答案 2 :(得分:-1)

首先将错误初始化为nil:

NSError * error = nil;

如果您想查看错误,请执行以下操作:

if(error)
{
    //Handle Error