我的代码中 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 的真正问题是啥的主要内容,如果未能解决你的问题,请参考以下文章