1
- (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'

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

4

2 回答 2

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];

并从代表那里得到回应

这个文件可以帮助你很多

于 2013-04-18T08:08:31.063 回答
1

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

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

于 2013-04-18T08:15:51.317 回答