【发布时间】:2016-09-16 00:37:11
【问题描述】:
我的视图控制器上有一组复选框,它们工作得很好。长话短说:用户选中一个框,然后点击保存按钮。选中一个框后保存会将值“是”发布到我的数据库中的一个字段。但是,如果没有选中任何框,并且我的用户点击“保存”,我会抛出此错误:
由于未捕获的异常而终止应用程序 'NSInvalidArgumentException',原因:'*** -[NSDictionary initWithObjects:forKeys:]:对象计数 (0) 与计数不同 钥匙 (1)'
如果没有选中任何框,我如何阻止应用程序崩溃,因为选中一个框不是强制性的?下面的代码(如果您需要更多信息,请告诉我 - 删除了按钮操作中复杂的“保存”部分)。
viewcontroller.m
- (IBAction)myCheck:(id)sender {
if (!checked17) {
[myCheck setImage:[UIImage imageNamed:@"checked.png"] forState:UIControlStateNormal];
checked17 = YES;
self.box = @"Yes";
}
else if (checked17) {
[myCheck setImage:[UIImage imageNamed:@"unchecked.png"] forState:UIControlStateNormal];
checked17 = NO;
self.box = @"No";
}
}
- (IBAction)submitButton:(id)sender {
NSDictionary *petOption = [NSDictionary dictionaryWithObjects:[NSArray arrayWithObjects:self.box, nil] forKeys:[NSArray arrayWithObjects:@"value", nil]];
NSDictionary *checkedFinish = [NSDictionary dictionaryWithObject:[NSArray arrayWithObject:petOption] forKey:@"und"];
[nodeData setObject:checkedFinish forKey:@"field_haveapet"];
}
【问题讨论】:
-
您是否启用了异常断点?这显示了如何做到这一点:stackoverflow.com/questions/17802662/…。启用此断点后使您的应用程序崩溃,它应该会向您显示崩溃的确切行。
-
@Losiowaty 这是崩溃行:NSDictionary *petOption = [NSDictionary dictionaryWithObjects:[NSArray arrayWithObjects:self.checkBox, nil] forKeys:[NSArray arrayWithObjects:@"value", nil]];
标签: ios objective-c