use*_*909 9 iphone objective-c ios
XCode新手在这里,我一直试图弄清楚为什么会发生以下情况......
使用当前编写代码的方式,我不断获得'NSInvalidArgumentException'.
原因:xcode中的'data parameter is nil'.网址在浏览器上运行正常.
当我删除网址的"filters =%7B%22region%22%3A%22CA%22%7D"部分时,它在Xcode中工作正常,但是当包含该网址的这一部分时,就是我收到错误消息的时候.我已经尝试使用"替代%22但仍然没有.任何建议都非常感谢.
NSURL *url = [NSURL URLWithString:[@"http://api.v3.factual.com/t/restaurants-us?q=peets+coffee&filters=%7B%22region%22%3A%22CA%22%7D&KEY=p7kwKMFUSyVi64FxnqWmeSDEI41kzE3vNWmwY9Zi"stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
NSData *data = [NSData dataWithContentsOfURL: url];
Run Code Online (Sandbox Code Playgroud)
小智 7
我也有同样的问题:
因未捕获的异常'NSInvalidArgumentException'而终止应用程序,原因:'data parameter is nil'
但我解决了它.原因是我的API网址不正确.请查看您的API网址.祝你好运!
您发布的代码在没有崩溃的情况下工作,但数据对象最终成为了 nil
稍后在您访问的代码中的某个时刻data.因为data == nil,应用程序崩溃了.
我建议进入
和
进入浏览器以了解情况
UPDATE
问题是编码已编码的字符串.(%的编码为%25)
NSString *urlBase = @"http://api.v3.factual.com/t/restaurants-us?";
NSString *urlData = [@"q=peets+coffee&filters={\"region\":\"CA\"}&KEY=p7kwKMFUSyVi64FxnqWmeSDEI41kzE3vNWmwY9Zi"stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSURL *url=[NSURL URLWithString:[NSString stringWithFormat:@"%@%@",urlBase,urlData]];
NSData* data = [NSData dataWithContentsOfURL: url];
Run Code Online (Sandbox Code Playgroud)
有效,因为您正在编码非编码字符串.
要么
NSURL *url=[NSURL URLWithString:[NSString stringWithFormat:@"http://api.v3.factual.com/t/restaurants-us?q=peets+coffee&filters=%7B%22region%22%3A%22CA%22%7D&KEY=p7kwKMFUSyVi64FxnqWmeSDEI41kzE3vNWmwY9Zi"]];
NSData* data = [NSData dataWithContentsOfURL: url];
Run Code Online (Sandbox Code Playgroud)
会起作用,因为你的帖子是,你的字符串已经正确编码
| 归档时间: |
|
| 查看次数: |
35098 次 |
| 最近记录: |