我已经查看了与我的问题类似的其他问题,但似乎没有一个问题有效。
我从调试器获取的错误是
由于未捕获的异常而终止应用 ' NSInvalidArgumentException',原因:'数据参数为nil''
这是我的代码
{
NSURL *url = [NSURL URLWithString:@"A valid URL"];
NSData *data = [NSData dataWithContentsOfURL:url];
jsonArray = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:nil];
NSLog(@"NSJSONSerialization is executed");
schoolArray = [[NSMutableArray alloc] init];
NSLog(@"NSMutableArray is executed");
for (int i=0; i<jsonArray.count; i++) {
NSString *sName = [[jsonArray objectAtIndex:i] objectForKey:@"SchoolNameID"];
NSString *sLink = [[jsonArray objectAtIndex:i] objectForKey:@"SchoolPHPLink"];
NSString *sImage = [[jsonArray objectAtIndex:i] objectForKey:@"SchoolImage"];
NSString *sMascot = [[jsonArray objectAtIndex:i] objectForKey:@"SchoolMascot"];
[schoolArray addObject:[[Schools alloc] initWithSchoolName:sName andSchoolLink:sLink andschoolImage:sImage andSchoolMascot:sMascot]];
}
[self.tableView reloadData];
}
我知道问题与jsonArray
有关
这段代码用来实际工作。在它工作并将其发布到App Store之后,我将此文件存储在Google云端硬盘上,几周后再次打开文件并运行它而不触及任何代码,我收到此错误。我很蠢,我对调试很陌生。
任何帮助将不胜感激!谢谢。
答案 0 :(得分:2)
点击您的项目info.plist
点击+号添加App Transport Security
然后你会看到&gt;登录点击此添加再次单击+按钮。
现在添加允许库加载,然后单击右侧的“是”。
现在运行您的App错误Solved Enjoy。
答案 1 :(得分:0)
我真是个笨蛋。好吧,我得到了@thanyaj的称赞,因为他带领我走上正轨。
事实证明,对于iOS 9,我不能使用HTTP链接,而是需要使用HTTPS网址,因为由于某种原因它不再允许它。
但无论如何,修复它是通过转到info.plist文件并授予其使用HTTP链接的权限。
我添加了NSAppTransportSecurity Boolean YES
,这对我有用。