我的代码中 NSData 的真正问题是啥

Posted

技术标签:

【中文标题】我的代码中 NSData 的真正问题是啥【英文标题】:What is real issue with the NSData in my code我的代码中 NSData 的真正问题是什么 【发布时间】:2012-03-16 08:59:43 【问题描述】:

当用户在搜索栏搜索文本时,我想发送 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

【问题讨论】:

使用+ (id)dataWithContentsOfURL:(NSURL *)aURL options:(NSDataReadingOptions)mask error:(NSError **)errorPtr (documentation) 并检查错误 【参考方案1】:

来自the manual of dataWithContentsOfURL;

返回值:包含来自该位置的数据的数据对象 由 URL 指定。如果数据对象不能是,则返回 nil 已创建。

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

【讨论】:

这个 url 在我的浏览器中运行,问题出在我无法添加到 NSData 对象中 @sai-info.iphone 它在你的 iPhone 浏览器中运行吗? ya 在我的手机(模拟器)浏览器中也运行并返回我 json 字符串 @sai-info.iphone 那么你可能需要测试答案中提到的调用版本,它会给你一个错误代码。 如果我必须 #difine 相同的 url 那么它的工作那么版本有问题吗??

以上是关于我的代码中 NSData 的真正问题是啥的主要内容,如果未能解决你的问题,请参考以下文章

看看这段代码,如果有啥我可以改变的,请告诉我

真正的手表描述符是啥? (Linux inotify 子系统)

API 和微服务之间的真正区别是啥?

VC有一个计算两个日期之间的函数是啥我想不起来了

从文件中获取 NSData

问啥我的web.xml一加Listener,启动tomcat就出错