我真的不知道如何问这个,因为提出问题标题真的很痛苦,但我希望你能帮助我
我有一个小伙子。
我把它读成了一个nsarray
NSArray *arrayOfPlist = [[NSArray alloc] initWithContentsOfFile:path];
此pList采用此格式。
<array>
<dict>
<key>category</key>
<string>desert</string>
<key>numberOfPerson</key>
<string>3</string>
<key>recipeImage</key>
<string>asdasd.jpg</string>
<key>time</key>
<string>15</string>
<key>recipeName</key>
<string>asd asdad</string>
<key>recipeDetail</key>
<string>asdasd</string>
<key>recipeIngredients</key>
用户将输入输入到textField。
我将其存储为searchText
我使用NSPredicate查看RecipeIngredients是否包含它。
此时我遇到了麻烦
当我尝试使用此数组时
NSArray* haves = [recipeIngredientsOfOneRecipeString componentsSeparatedByCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@","]];
它给了我这个错误[<__NSCFString 0x109291950> valueForUndefinedKey:]: this class is not key value coding-compliant for the key recipeIngredients.'
另一件事是我无法想象用给定输入检查所有recipeIngredients的正确方法。
我尝试在每次返回true时添加一个bool谓词i增加,当它的计数与haves.count相同时我添加了它但是这也没有用。
我正在杀死自己以寻找解决这些问题的方法,而且我的想法就不存在了。
需要一个新的视角。
答案 0 :(得分:1)
您可以使用以下代码
枚举整个plist文件以匹配用户输入NSArray* arrOfPlist = [[NSArray alloc] initWithContentsOfFile:path];
NSString* strMatch;//user Input
for (NSDictionary* dict in arrOfPlist)
{
for (id key in dict)
{
if ([[dict objectForKey:key]isEqualToString:strMatch])
{
//user search matches do whatever code you want here
break;
}
}
}