NSString *urlString = [NSString
stringWithFormat:@"http://192.168.1.15/abc/service.asmx?op=GetCenter"];
NSURL *url = [NSURL URLWithString:[urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
NSData *data = [[NSData alloc] initWithContentsOfURL:url];
NSError *error;
NSMutableArray *json =[NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&error];
NSLog(@"%@",[json description]);
我试过这个,但它返回空值而不是调用函数。
Program ended with exit code: 9(lldb)
如何识别是否调用了webserive,或者如何调用该函数?
如果您能提供更多关于未调用函数的含义的信息,那将非常有帮助,崩溃时是否显示任何堆栈跟踪或其他信息?
我会通过单步执行调试器中的每一行代码来解决此问题,以确保您正在获取数据,然后按照建议从序列化函数中打印出错误。
使用这些方法也可能是值得的:
NSString* newStr = [NSString stringWithContentsOfURL:url encoding: NSUTF8StringEncoding error:&error];
或
NSString* newStr = [[NSString alloc] initWithData:theData encoding:NSUTF8StringEncoding];
下载后从您的 URL 或数据中获取字符串,然后打印或查看内容。
从长远来看,您可能需要考虑使用AFNetworking之类的东西来进行网络呼叫,因为您拥有的是同步的,理想情况下,您应该异步执行所有网络。