如何在objective-c中使用localhost的json数据?

时间:2013-04-18 08:00:48

标签: ios objective-c json

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view.

    NSURL *site_url = [NSURL URLWithString:[NSString stringWithFormat:@"%@/json/data/post?sid=%@", SECURE, PASSCODE]];

    NSData *jsonData = [NSData dataWithContentsOfURL:site_url];
    NSError *error = nil;
    NSDictionary *dataDictionary = [NSJSONSerialization JSONObjectWithData:jsonData options:0 error:&error];

    self.items = dataDictionary;


}

我正在尝试解析json数据。它适用于来自实时服务器的数据。但是,当我将链接更改为http://localhost:8090时。它停止工作。

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'data parameter is nil'

我可以从网络浏览器的数据中访问它。有谁知道为什么会这样?

2 个答案:

答案 0 :(得分:1)

这里需要的是实现NSURLConnection并从中接收数据

看看这个

NSURL *site_url = [NSURL URLWithString:[NSString stringWithFormat:@"%@/json/data/post?sid=%@", SECURE, PASSCODE]];
NSURLRequest *req = [NSURLRequest requestWithURL:site_url];
NSURLConnection *con = [[NSURLConnection alloc] initWithRequest:req delegate:self];
[con start];

并从代表处获得回复

document可以为您提供很多帮助

答案 1 :(得分:1)

是否可以在模拟器上运行而不是在真实设备上运行?

开发应用时绝不应使用localhost,而是使用服务器的本地IP。 Localhost是调用服务器的机器。当您尝试使用模拟器并且您在同一台计算机上安装服务器时,它可以工作,因为它们是相同的。 但是当您尝试使用真实设备时,localhost就是设备,并且设备没有安装服务器,因此它将失败。 顺便说一句,要在真实设备上进行测试,它必须连接到同一网络。