- (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'
我可以从网络浏览器的数据中访问它。有谁知道为什么会这样?
答案 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就是设备,并且设备没有安装服务器,因此它将失败。 顺便说一句,要在真实设备上进行测试,它必须连接到同一网络。