2014-10-03 34 views
0

获取JSON数据,我将发布我的代码在这里:无法在iOS版

的NSString *字符串= [的NSString stringWithFormat:@ “https://api.fda.gov/drug/event.json?limit=25”];

NSLog(@"string:%@",string); 

NSURL *url=[NSURL URLWithString:string]; 

NSLog(@"url %@",url); 

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ 
NSData *data=[NSData dataWithContentsOfURL:url]; 

    NSLog(@"data:%@",data); 

    [self performSelectorOnMainThread:@selector(fetcheddata:) withObject:data waitUntilDone:YES]; 
}); 

- (空)fetcheddata:(NSData的*){}

上面的代码为我工作较早。我不知道发生了什么,现在不工作。当我在浏览器中粘贴URL时,它正在工作。请在这种情况下指导我。它显示我的数据参数为零,异常为NSInvalidArgumentException。

+0

您的代码对我的作品,我总是在3秒钟后像获取数据。 – gabbler 2014-10-03 16:12:32

+0

我创建了新的项目,并再次在viewdidload中编写代码,但它仍然不适合我。我正在使用Xcode 6 iOS8。 – 2014-10-03 16:21:20

+0

我也使用Xcode 6和iOS 8,你能分享你的代码吗? – gabbler 2014-10-03 16:44:17

回答

0

更改以下行

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ 

dispatch_sync(dispatch_get_main_queue(), ^{ 
+0

它仍然无法正常工作。我感谢您的帮助。我认为这不是因为dispatch_async代码行。 – 2014-10-03 16:09:35

+0

我认为你需要在dispatch_synch中粘贴你的完整url代码。请尝试像这样 – 2014-10-03 16:12:04

+0

顺便说一下你的dispatch_async和我的区别是什么? – 2014-10-03 18:23:42