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

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

最佳答案

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

开发应用程序时,切勿使用本地主机,而应使用服务器的本地IP。 Localhost是向服务器发出 call 的计算机。当您尝试使用仿真器,并且服务器位于同一台计算机上时,由于它们是相同的,因此它可以工作。
但是,当您在真实设备上尝试使用localhost时,该设备没有安装服务器,因此它将失败。
顺便说一句,要在真实设备上进行测试,必须将其连接到同一网络。

10-06 13:04
查看更多