【问题标题】:NSString from NSString to set as key in NSMutableDictionaryNSString 中的 NSString 设置为 NSMutableDictionary 中的键
【发布时间】:2015-05-13 19:05:32
【问题描述】:

我得到一个 initWithObjects:count:]: 尝试在以下行从 objects[0] 插入 nil 对象:

[contentsOfCocktails setObject:[NSMutableArray arrayWithObject: recipeTitleA] forKey:cocktailsTitleA];

recipeTitleA 是我从等于 A 的 cocktails.recipeID 类属性创建的字符串。但是,我在调试窗口中得到了一个等于 nil 的recipeTitleA。

这里我设置cocktails.recipeID等于recipeTitleA:

if ([cocktails.recipeID isEqualToString:@"A"]){
    recipeTitleA = cocktails.recipeID;
}

这是将字符串设置为等于另一个字符串以便将其用作 NSMutableDictionary 中的键的正确方法吗?

长话短说:我正在尝试提取等于 A 的 recipeID 并将它们设置为字典中的键。我也将使用其他字母作为键来执行此操作。然后我打算将它们存储在一个数组中,我可以在其中创建表格视图中的部分。数据通过 FMDB 引入。

我是 obj-c 的新手,也是使用数组和字典进行数据格式化的新手。任何帮助将不胜感激!

【问题讨论】:

  • 如果调试器告诉你 recipeTitleA 是 nil,那意味着它是 nil,或者你不能在数组中添加 nil。所以你必须找出为什么它是 nil,你设置 NSMutableDictionnary 的方式很好。
  • 'cocktails.recipeID' 为零吗?你在哪里设置?
  • @Ckouta 我到处看了看,我相信整个鸡尾酒课都加载为零。可能是因为直到在 tableviewcontroller 中进一步下降,我才使用 FMDB 获取数据?我在问题中的给定代码上方分配和初始化鸡尾酒。

标签: ios objective-c nsstring nsdictionary


【解决方案1】:

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

【讨论】:

  • 看起来类“鸡尾酒”在该行加载为零,考虑到我在上面分配和初始化它,这很奇怪。我在上面打电话给[self recipeCocktails]。 @property (nonatomic, copy) NSString *recipeID 是在 Cocktails.h 中声明的方式...所以我认为它设置正确。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多