Ios NSString从NSString设置为NSMutableDictionary中的键

Ios NSString从NSString设置为NSMutableDictionary中的键,ios,objective-c,nsstring,nsdictionary,Ios,Objective C,Nsstring,Nsdictionary,我得到了一个initWithObjects:count:::::]:尝试在下一行插入对象[0]中的nil对象: [contentsOfCocktails setObject:[NSMutableArray arrayWithObject: recipeTitleA] forKey:cocktailsTitleA]; RecipeTleA是我从cocktails.recipeID类属性创建的字符串,该属性等于A。但是,我在调试窗口中得到一个RecipeTleA等于nil 这里是我设置鸡尾酒的地方

我得到了一个initWithObjects:count:::::]:尝试在下一行插入对象[0]中的nil对象:

[contentsOfCocktails setObject:[NSMutableArray arrayWithObject: recipeTitleA] forKey:cocktailsTitleA];
RecipeTleA
是我从
cocktails.recipeID
类属性创建的字符串,该属性等于A。但是,我在调试窗口中得到一个
RecipeTleA
等于nil

这里是我设置鸡尾酒的地方。recipeID等于recipeTitleA:

if ([cocktails.recipeID isEqualToString:@"A"]){
    recipeTitleA = cocktails.recipeID;
}
这是将一个字符串设置为另一个字符串以将其用作NSMutableDictionary中的键的正确方法吗?

长话短说:我试图提取等于A的recipeid,并将它们设置为字典中的键。我也会用其他字母和钥匙来做这件事。然后我将它们存储在一个数组中,在这个数组中我可以在tableview中创建部分。数据通过FMDB引入


我不熟悉obj-c,也不熟悉数组和字典的数据格式。任何帮助都将不胜感激

看起来您正在正确地进行字符串比较。在
if([cocktails.recipeID isEqualToString:@“a”])处设置断点{
并查看您从
鸡尾酒中得到了什么。recipeID
,如果它是nil,请返回到您的
鸡尾酒中。recipeID
属性并查看其设置是否正确。

如果调试程序告诉您
RecipeTleA
是nil,则意味着它是nil,或者您不能在数组中添加nil。因此,您必须找到w为什么是nil,你设置你的
NSMutableDictionnary
的方法很好。是'cocktails.recipeID'nil吗?你在哪里设置它?@Ckouta我到处看了看,我相信整个cocktails类都加载为nil。可能是因为我在tableviewcontroller的更深处才使用FMDB获取数据吗?我分配并初始化了问题中给定代码上方的e Cocktails。该行上的类“Cocktails”似乎加载为nil,考虑到我在上面分配并初始化了它,这很奇怪。我在该行上方调用了[self-recipeCacktails]。
@property(非原子,复制)NSString*recipeID
是如何在Cocktails.h中声明的,所以我假设它设置正确。