在我的代码中NSData的真正问题是什么

时间:2012-03-16 08:59:43

标签: iphone objective-c ios ipad ios5

我想在用户搜索搜索栏上的文本时发送json服务。这里的问题是我返回NSData对象的空值,这里的问题是什么?如果我定义了我在控制台中打印的相同URL,但是这里有什么问题?

-(void)doIt{

    NSURL *url = [NSURL URLWithString:weburls];
    NSData *data =[NSData dataWithContentsOfURL:url];
    [self getData:data];
}

如果我会这样写,那么它有效,但我想在搜索栏事件上调用该服务,但是有问题

NSString *weburl = [NSString stringWithFormat:@"%@%@",
@"http://192.168.1.196/ravi/iphonephp?mname=",searchText];
NSLog(@"%@",weburl);

NSURL *url = [NSURL URLWithString:weburl];
NSLog(@"the url is : %@",url);

NSError *error;

NSData *data =[NSData dataWithContentsOfURL:url options:nil error:&error];
NSLog(@"Data is :%@",data);

NSLog(@"the Error massage is : %@",error);
[self getData:data];

给我控制台价值,如

customCellDemo[1553:f803] the url is : http://192.168.1.196/ravi/iphonephp?mname=a

2012-03-16 15:26:36.259 customCellDemo[1553:f803] Data is :(null)

2012-03-16 15:26:43.624 customCellDemo[1553:f803] the Error massage is : Error 
Domain=NSCocoaErrorDomain Code=256 "The operation couldn’t be completed. (Cocoa error 256.)" 
UserInfo=0x6ab2760 {NSURL=http://192.168.1.196/ravi/iphonephp?mname=a}

1 个答案:

答案 0 :(得分:0)

来自the manual of dataWithContentsOfURL;

  

返回值:包含位置数据的数据对象   由aURL指定。如果数据对象不能,则返回nil   创建

换句话说,它可能无法创建NSData(不太可能),也可能无法从您提供的URL获取任何数据。我建议您尝试使用dataWithContentsOfURL:options:error:来获取错误代码并能够诊断问题。