循环通过NSDictionary导致奇怪的行为

时间:2013-01-10 08:53:23

标签: nsdictionary mkannotation ienumerator

我目前有一个用于存储json信息的NSDictionary,JSON最初被序列化为NSMutuable数组,然后我将它分配给NSDictionary。

在我的注释方法(我用来将mkannotations添加到我的地图视图中的方法)中,我试图遍历字典并通过坐标添加注释,该坐标存储为字典中每个对象的关键字。

我当前的结果似乎只创建了一个注释视图(地图上的图钉),通过断点查看它似乎是循环遍历字典而不是访问所有对象,我的代码如下:

for (NSString* key in [[Global sharedglobal]jsonDictionary]) {

NSNumber *longtitude = [[[Global sharedglobal]jsonDictionary] objectForKey:@"v_lon"];
NSNumber *latitude = [[[Global sharedglobal]jsonDictionary] objectForKey:@"v_lat"];
} 

看起来我正在考虑for参数中的键应该引用字典中某个对象中的键,例如@“v_lon”,这看起来是否正确?

由于

1 个答案:

答案 0 :(得分:0)

好的,因为我是编程的新手,我还没有完全理解json被解析的方式。它的工作原理如下:

json是一个包含各种数据的对象的大型数组。

下载json并存储在NSMutable数组“jsonArray”中。

要访问我需要使用“for in loop”检查字典的对象,因为这是数据现在存储在可变数组中的方式。所以:

for (NSDictionary *dict in jsonArray){
NSNumber *longtitude = [dict objectForKet:@"keyForLongtitudeEntry"];
}

这将迭代字典类型的所有对象,并将该longtitude变量设置为对象的当前值,在此情况下指定的键为“keyForLongtitudeEntry”。