我有一个刚打开的应用程序调用一个给我一个json字符串的webserver页面。 当我在本地网络上时,所有工作都没有问题,但当我在本地网络外打开应用程序而没有vpn应用程序崩溃。 如何控制json字符串? 这是我的代码:
NSString *urlstr = [[NSString alloc] initWithFormat:@"%@yes.php", av];
NSURL *url = [[NSURL alloc] initWithString:urlstr];
NSError* error = nil;
NSString* urlString = [NSString stringWithContentsOfURL:url encoding:NSASCIIStringEncoding error:&error];
NSString *newStr;
NSData* data=[newStr dataUsingEncoding:NSUTF8StringEncoding];
NSDictionary* json = [NSJSONSerialization JSONObjectWithData:data
options:kNilOptions
error:&error];
sn1 = [[json objectForKey:@"Rele1"] intValue];
我想将json答案与NULL值进行比较,如果两个参数相等,我会显示警告。
编辑:如果我尝试读取任何值,应用程序崩溃等待json回复... 我用NSURLRequest绕过了问题,并使用了在n秒后关闭连接的timeoutInterval参数。
答案 0 :(得分:0)
除此之外,你没有:
objectForKey:
会引发异常)将返回数据解析为ASCII然后重新编码为UTF-8也可能是多余的 - 因为一个超过另一个它具有阈值测试的效果,否则会阻止可接受的结果继续进行。
答案 1 :(得分:0)
此代码是否有效?
error
[NSString stringWithContentsOfURL:url encoding:NSASCIIStringEncoding error:&error];
urlString
但是从未初始化的newStr
获取NSData并解析它?error
,您都应该先检查