Ios 返回字典中对象的键不会出现可见的接口错误

Ios 返回字典中对象的键不会出现可见的接口错误,ios,objective-c,nsmutablearray,nsarray,Ios,Objective C,Nsmutablearray,Nsarray,我有这样的字典: { Asr = "5:33"; Dhuhr = "1:11"; Fajr = "2:40"; Isha = "11:34"; Maghrib = "9:28"; Qiyam = "1:38"; Sunrise = "4:54"; } 我将值5:33存储为字符串。这次我想返回字符串Asr 我正在使用以下代码: NSArray *temp = [arrayOfDatesAsDates allKeysForObject:fin

我有这样的字典:

{
    Asr = "5:33";
    Dhuhr = "1:11";
    Fajr = "2:40";
    Isha = "11:34";
    Maghrib = "9:28";
    Qiyam = "1:38";
    Sunrise = "4:54";
}
我将值
5:33
存储为字符串。这次我想返回字符串
Asr

我正在使用以下代码:

NSArray *temp = [arrayOfDatesAsDates allKeysForObject:finalTimeFormat];
NSString *key = [temp objectAtIndex:0];
但是Xcode说“NSMutableArray没有可见的@interface声明选择器'allKeysForObject'”


为什么会这样?我搜索此名称的代码是否错误?

您有一个NSMutableArray,而不是NSMutableDictionary。用
[NSMutableDictionary]
而不是
[NSMutableArray]

初始化它,因为它已经在代码中的其他地方创建和使用过,现在有什么方法可以快速转换它(或作为数组搜索它)?ThanksA字典将对象保存为表示值的键,数组将对象存储为表示值的索引。您试图获取数组中对象的键,但数组没有键。编辑:对不起,这太粗鲁了。初始化数组/字典的代码是什么?嗯。整个数组中的
Asr=“5:33”
我的数据也是这样吗?我以为它是一本词典,
Asr
是键,
5:33
是对象…?@samiles-转储是一本词典,但这不是你在
allKeysForObject
中使用的。(数组将在NSLog转储中用
()
括起来。)“arrayOfDatesAsDates”显然是一个NSArray,而不是NSDictionary。(正如消息清楚地告诉您的那样)您上面显示的转储是NSDictionary的转储,但这不是您正在执行的
allKeysFOrObject
(如果它真的是一个dictionary,您无疑会将其命名为“dictOfDatesAsDates”,因为您肯定知道,错误命名变量是非常糟糕的编程实践。)它的名称有误我同意,但这肯定是arrayOfDatesAsDates的日志输出…不,转储肯定是一个字典(由
{}
括号证明),但您使用的
allKeysForObject
对象肯定是一个数组(由错误消息证明)。再次回顾你的逻辑——你遗漏了一些东西。