NSInvalidArgumentException,原因:'数据参数为nil'

时间:2015-10-03 19:41:01

标签: ios

我已经查看了与我的问题类似的其他问题,但似乎没有一个问题有效。

我从调试器获取的错误是

  

由于未捕获的异常而终止应用   ' 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云端硬盘上,几周后再次打开文件并运行它而不触及任何代码,我收到此错误。我很蠢,我对调试很陌生。

任何帮助将不胜感激!谢谢。

2 个答案:

答案 0 :(得分:2)

  1. 点击您的项目info.plist

  2. 点击+号添加App Transport Security

  3. 然后你会看到&gt;登录点击此添加再次单击+按钮。

  4. 现在添加允许库加载,然后单击右侧的“是”。

  5. 现在运行您的App错误Solved Enjoy。

答案 1 :(得分:0)

我真是个笨蛋。好吧,我得到了@thanyaj的称赞,因为他带领我走上正轨。

事实证明,对于iOS 9,我不能使用HTTP链接,而是需要使用HTTPS网址,因为由于某种原因它不再允许它。

但无论如何,修复它是通过转到info.plist文件并授予其使用HTTP链接的权限。

我添加了NSAppTransportSecurity Boolean YES,这对我有用。