我正在使用 IBAForms 为我的项目创建一个简单的表单,除了从 de 字段中获取值之外,我几乎完成了所有工作。我有这个代码:
NSLog(@"SUBMIT");
id values = [[self formDataSource] modelValueForKeyPath:@"diabetePickListItem"];
for (id key in values){
id values = [values objectForKey:key];
NSString *keyString = (NSString *)key;
NSLog(@"%@",keyString);
NSString *valueString = (NSString *)values;
NSLog(@"%@",valueString);
}
NSLog(@"diabetes %@", values);
它在控制台中给了我这个输出:
2012-10-07 07:02:37.145 BigBlueTest[64483:10403] SUBMIT
2012-10-07 07:02:37.147 BigBlueTest[64483:10403] Yes
2012-10-07 07:02:37.148 BigBlueTest[64483:10403] (null)
2012-10-07 07:02:37.150 BigBlueTest[64483:10403] diabetes {(
Yes
)}
我不明白的是如何从 modelValueForKeyPath 方法返回的值中获取密钥。我只想在不进行快速枚举的情况下获得“是”或“否”的值。我真的不知道我在这段代码中缺少什么。任何帮助将不胜感激。提前致谢。
编辑:
问题是,当我尝试使用 objectAtIndex 时,它给了我 -[__NSCFSet objectAtIndex:]: unrecognized selector sent to instance 错误。我正在处理的应用程序包含一个收集简单信息的表格,如果我完全填写表格并打印我得到这个输出的值的内容:
NSLog(@"%@",_formValues);
2012-10-08 11:27:48.524 BigBlueTest[17285:10403] {
activityPickListItem = "{(\n Running/jogging\n)}";
bloodAfter = 60;
bloodBefore = 58;
diabetePickListItem = "{(\n Yes\n)}";
durationPickListItem = "{(\n 10 or less\n)}";
intensityPickListItem = "{(\n Moderate\n)}";
lowGlucoseSyntom = "{(\n No\n)}";
pickInsulinUse = "{(\n Yes\n)}";
pickMeasureUnit = "{(\n mmol/L\n)}";
recentMealPickListItem = "{(\n 30 minutes ago\n)}";
}
如果我使用 valueForKeypath,那么我会得到这种格式的值 {(value)}。我还没有想出一种方法来从中获取字符串值。从 NSDictionary 和 NSArray 尝试的方法不成功。感谢您的回复。