感谢这个论坛上的精彩人物,我已经克服了大部分核心数据的困境。
然而,一个人坚持,我确信这是一个简单的解决方案。
我有一个配方应用程序,可以在加载时解析XML文档并将数据放入Core Data。
然后我在核心数据中搜索特定的食谱,配料等。
一切都在处理一个例外......我无法对我检索的数据做任何事情。
例如,我在核心数据中搜索“茄子”并在流程结束时获取此信息:
"<RecipeData: 0x6112a40> (entity: RecipeData; id: 0x6113880 <x-coredata:///RecipeData/tCDE9A0EE-DA3F-4BD0-AEF8-3C038586991D4> ; data: {\n ingredients = \"Eggplant|Cheese|Tomatoes|\";\n name = \"Eggplant Parm\";\n time = 40;\n})"
如何从中获取信息?我尝试循环,但这导致应用程序崩溃:
for (NSString* key in selectedRecipe) {
id value = [selectedRecipe objectForKey:key];
NSLog(@"IN LOOP: %@", value);
}
有什么建议吗?
感谢您的时间。
答案 0 :(得分:0)
使用Core Data,如果您从模型创建了一个已定义的“Recipe”类,您应该能够像任何其他属性一样读入属性/属性:
someRecipe.ingredients = "Eggplant";
只有当selectedRecipe是字典时,您的上述代码才有效。除此之外,我们需要看看你的实现:)
我发现这是一个好的开始:
答案 1 :(得分:0)
您应该已经从模型中定义了RecipeData类,并且已经设置了合成属性。将它包含在文件中,然后将地址包含在这样的结果中:
for (RecipeData *recipeData in yourFetchedResults) {
NSLog(@"The name is %@", recipeData.name);
NSLog(@"The ingredients are %@", recipeData.ingredients);
}
等。显然,您将使用获取结果的实际名称代替yourFetchedResults。
如果您还没有定义RecipeData类,则可以轻松自动生成它:
点击.xcdatamodel中的RecipeData 实体,然后选择它。
右键/按住Control键并点击项目中您要创建班级的文件夹或群组,然后选择新文件。
从提供的模板中选择托管对象类,然后单击“下一步”。
选中您要为其生成类的实体旁边的框,然后单击“确定”。
Poof,你已经完成了完整的类,属性。