質問が古くなっていることは承知しています。より良い言い方が見つからなかったので、私が苦労している質問を時間をかけて説明します。
ユーザーからの入力を受け取るiPhoneアプリがあります。そして、plistを取得しました(すぐにオンラインデータベースに変換します)。現在行っていることはこれです。入力文字列を plist の項目の成分部分と比較します。
これは plist 形式です
<array>
<dict>
<key>category</key>
<string>desert</string>
<key>numberOfPerson</key>
<string>3</string>
<key>recipeImage</key>
<string>asd.jpg</string>
<key>time</key>
<string>15</string>
<key>recipeName</key>
<string>Puding</string>
<key>recipeDetail</key>
入力をrecipeIngredientsと比較しますが、コードが行うことは私が必要とするものではありません.比較が真になった場合、入力成分を含むplistからすべての項目をリストするだけです.選択したレシピをフィルタリングできますが、私が欲しいのはこれです:入力と材料が完全に一致しない限り、表示したくありません。
問題はこれです。レシピの材料は、砂糖大さじ1、塩大さじ1、鶏肉100gです。
ユーザーは、塩、砂糖などの入力を入力します。鶏肉なので完全に比較することはできません。同じになることはないので、何も表示できません。
どうすればこれを達成できますか。
あらゆる種類の提案を受け付けています。
これが私が比較する方法です
results = [arrayOfPlist filteredArrayUsingPredicate:[NSPredicate predicateWithBlock:^BOOL(id evaluatedObject, NSDictionary *bindings) {
NSDictionary *_dataRow = (NSDictionary *)evaluatedObject;
return ([[[_dataRow valueForKey:@"recipeIngredients"] lowercaseString] rangeOfString:[searchText lowercaseString]].location != NSNotFound);
}]];
searchText は私の入力です。