0

出于某种原因,当我执行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

有任何想法吗?

4

3 回答 3

7

不要检查NSError对象以确定是否发生错误。按照惯例,您应该检查产生错误的方法的返回值。如果结果是nilNO,那么您才应该继续检查错误。此外,您不是在检查错误对象,而是在检查错误对象内存中地址的有效性。

在您的情况下,仅继续检查错误 if urlDatais nil

于 2011-12-08T21:58:31.093 回答
-1

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

if (error != nil)

代替

if (&error)

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

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

于 2011-12-08T21:57:25.210 回答
-1

首先将错误初始化为零:

NSError * error = nil;

当您想查看错误时,请执行以下操作:

if(error)
{
    //Handle Error
于 2011-12-08T21:58:19.750 回答