我正在尝试访问字典中的数据。当它是一个字符串时,我能够访问数据:
cell.textLabel.text = [[item objectForKey:@"merchant"]objectForKey:@"name"];
但我不确定NSNumber的语法:
NSNumber* latFromTable = [[displayItems objectAtIndex:indexPath.row]
[objectForKey:@"coords"]objectForKey:@"lat"];
我知道我在上面的代码中使用的NSStrings不起作用。我如何改变它以使用NSNumber?
字典中的数据如下所示。 objectForKey是“coords”。我想要访问第1项和第2项(lat和lng)
"coords": {
"lat": 52.5032,
"lng": 13.3445
感谢您的帮助。
答案 0 :(得分:2)
以下代码的问题是括号不匹配:
NSNumber* latFromTable = [[displayItems objectAtIndex:indexPath.row]
[objectForKey:@"coords"]objectForKey:@"lat"];
所以改变它:
float latFromTable = (float)[[[displayItems objectAtIndex:indexPath.row]
objectForKey:@"coords"]objectForKey:@"lat"];
NSNumber *value = [NSNumber numberWithFloat:latFromTable];
答案 1 :(得分:1)
试试这样:
float latFromTable = [[[displayItems objectForIndex:indexPath.row]
[objectForKey:@"coords"]objectForKey:@"lat"] floatValue];
答案 2 :(得分:0)
字典中的键值对称为条目。每个条目包含一个表示密钥的OBJECT和一个表示该密钥值的OBJECT。
NSInteger不是一个对象(它只是一个int值)。
所以,你不能这样做
---附加的 正如schubam提出的那样,你可以收到一个NSString并调用floatValue。
--- ADDED2 我已经更准确地阅读了日志。你有一个lat和long属性的对象。所以,它不是二级字典。尝试接收接口名称并获取这些接口的对象。