【发布时间】:2016-03-13 21:47:42
【问题描述】:
我在我的应用中创建了一个复选框。如果选中该框,我想设置单词“medium”以保存到我的数据库字段。在我的“if checked1 = YES”块中,我创建了一个 NSString 并将其设置为“Medium”。也就是说,在我的提交按钮块中,我应该使用什么样的代码来保存设置的字符串?
从我的数据库返回的 JSON 的结构需要下面的代码才能输入字符串,但我不确定如何重写它以适应 NSString(我之前将它用于 NSArray)?
NSDictionary *bodyValues = [NSDictionary dictionaryWithObjects:[NSArray arrayWithObjects:medium, nil] forKeys:[NSArray arrayWithObjects:@"value", nil]];
NSDictionary *languageDict = [NSDictionary dictionaryWithObject:[NSArray arrayWithObject:bodyValues] forKey:@"und"];
[nodeData setObject:languageDict forKey:@"size"];
我在运行这个块时得到的错误是:
* 由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“* -[NSDictionary initWithObjects:forKeys:]:对象计数 (0) 与计数不同 钥匙 (1)'
请参阅下面的代码 - 希望我解释清楚,谢谢:
.h
@property (weak, nonatomic) IBOutlet NSString *medium;
.m
- (IBAction)checkButton:(id)sender {
if (!checked1) {
[checkboxButton setImage:[UIImage imageNamed:@"checked.png"] forState:UIControlStateNormal];
checked1 = YES;
NSString *medium = @"Medium";
NSLog(@"button 1");
}
else if (checked1) {
[checkboxButton setImage:[UIImage imageNamed:@"unchecked.png"] forState:UIControlStateNormal];
checked1 = NO;
}
}
- (IBAction)submitPet:(id)sender {
NSMutableDictionary *nodeData = [NSMutableDictionary new];
[nodeData setValue: self.dogsName.text forKey:@"title"];
[nodeData setObject:@"pets" forKey:@"type"];
NSDictionary *bodyValues = [NSDictionary dictionaryWithObjects:[NSArray arrayWithObjects:medium, nil] forKeys:[NSArray arrayWithObjects:@"value", nil]];
NSDictionary *languageDict = [NSDictionary dictionaryWithObject:[NSArray arrayWithObject:bodyValues] forKey:@"und"];
[nodeData setObject:languageDict forKey:@"size"];
[DIOSNode nodeSave:nodeData success:^(AFHTTPRequestOperation *operation, id responseObject) {
NSLog(@"Node saved!");
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"Node did not save!");
}];
}
【问题讨论】:
标签: ios objective-c