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 のメソッドを試してみましたが失敗しました。返信ありがとうございます。