Objective c 在NSDictionary中获取值
我想从Objective c 在NSDictionary中获取值,objective-c,ios,nsdictionary,Objective C,Ios,Nsdictionary,我想从NSDictionary中获取值。我想控制“代码”键根据代码键,我会得到基准值。当我尝试不同的方法时,会收到错误消息 错误消息 2011-08-11 12:45:21.549 AOK[6312:207]-[uuu NSArrayM getObjects:andKeys::发送到实例0x5e138b0的选择器无法识别 2011-08-11 12:45:21.550 AOK[6312:207]*由于以下原因终止应用程序 未捕获异常“NSInvalidArgumentException”,原因:
NSDictionary
中获取值。我想控制“代码”键根据代码键,我会得到基准值。当我尝试不同的方法时,会收到错误消息
错误消息
2011-08-11 12:45:21.549 AOK[6312:207]-[uuu NSArrayM
getObjects:andKeys::发送到实例0x5e138b0的选择器无法识别
2011-08-11 12:45:21.550 AOK[6312:207]*由于以下原因终止应用程序
未捕获异常“NSInvalidArgumentException”,原因:'-[\uu NSArrayM
getObjects:andKeys::发送到实例的选择器无法识别
0x5e138b0'
*第一次抛出时调用堆栈:
国家统计局词典
(
{
Omschrijving = "ADDD";
Ophaaldata = {
Datum = (
"2011-07-04",
"2011-07-11",
"2011-07-18",
"2011-07-25"
);
};
},
{
Omschrijving = "BBBB";
Ophaaldata = {
Datum = (
"2011-07-05",
"2011-07-12",
"2011-07-19",
"2011-07-26"
);
};
},
{
Omschrijving = "KKKK";
Ophaaldata = {
Datum = (
"2011-07-07",
"2011-07-14",
"2011-07-21",
"2011-07-28"
);
};
},
{
Omschrijving = "LLLLL";
Ophaaldata = {
Datum = (
"2011-07-01",
"2011-07-08",
"2011-07-15",
"2011-07-22",
"2011-07-29"
);
};
},
{
Omschrijving = "MMMMM";
Ophaaldata = {
Datum = (
"2011-07-01",
"2011-07-15",
"2011-07-29"
);
};
},
{
Code = POP;
Omschrijving = "FFFF";
Ophaaldata = {
Datum = "2011-07-12";
};
},
{
Code = 00;
Omschrijving = "SSSS";
Ophaaldata = {
Datum = (
"2011-07-14",
"2011-07-27"
);
};
},
{
Code = 01;
Omschrijving = "CCCCC";
Ophaaldata = {
Datum = (
"2011-07-06",
"2011-07-20"
);
};
}
)
您确定您有一个
NSDictionary
而不是一个NSArray
?您显示的是一个NSDictionary的NSArray,每个NSDictionary都包含一个带有说明的NSString(Omschrijving)和一个带有一个键(数据)的NSDictionary(Ophaaldata),这是一个日期数组。如果将对象:和键:
发送到NSArray,它将无法工作
以下是几个示例,说明了如何获取单个项目:
NSArray *dicts = ...; // wherever you get the array
NSDictionary *mijnDict = [dicts objectAtIndex: n];
NSString *omschrijving = [mijnDict objectForKey: @"Omschrijving"];
NSDictionary *ophaaldata = [mijnDict objectForkey: @"Ophaaldata"];
NSArray *datum = [ophaaldata objectForkey: @"Datum"];
NSString *eersteDatum = [datum objectAtIndex: 0];
这些只是说明如何处理这些项目的示例。但这是您的输出显示的结构。无论如何,其他任何东西都是无用的,因为字典只能包含每个键一次。我对代码进行了一些格式化,因此您可以更好地查看结构。在响应过程中,请记住行的值
{ .......... } indicates dictionary.
(............) indicates array.
Dictionary always have key with it like somename = "value in it", .......
Array has value seperated by comma like a , b , c .....
Now it is possible it may have array into dictionary like { somekey = ( a,b,c) } and vice versa
是的,我用字典。我一步一步地得到这个值
{ .......... } indicates dictionary.
(............) indicates array.
Dictionary always have key with it like somename = "value in it", .......
Array has value seperated by comma like a , b , c .....
Now it is possible it may have array into dictionary like { somekey = ( a,b,c) } and vice versa