我正在尝试访问字典中的数据。当数据是如下字符串时,我可以访问数据:
cell.textLabel.text = [[item objectForKey:@"merchant"]objectForKey:@"name"];
但不确定 NSNumber 的语法:
NSNumber* latFromTable = [[displayItems objectAtIndex:indexPath.row]
[objectForKey:@"coords"]objectForKey:@"lat"];
我知道我在上面的代码中使用了 NSStrings,这是行不通的。我如何改变它以与 NSNumber 一起使用?
字典中的数据如下所示。 objectForKey 是“坐标”。我想要访问项目 1 和 2(纬度和经度)
"coords": {
"lat": 52.5032,
"lng": 13.3445
感谢您的帮助。
以下代码的问题是括号不匹配:
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];
尝试这样:
float latFromTable = [[[displayItems objectForIndex:indexPath.row]
[objectForKey:@"coords"]objectForKey:@"lat"] floatValue];
字典中的键值对称为条目。每个条目由一个代表键的 OBJECT 和第二个代表该键值的 OBJECT 组成。
NSInteger 不是一个对象(它只是一个 int 值)。
所以,你不能这样做
---添加 正如 schubam 所建议的,您可以接收一个 NSString 并调用 floatValue。
---添加2 我已经更准确地阅读了日志。您有一个具有纬度和经度属性的对象。因此,它不是二级词典。尝试接收接口名称并获取这些接口的对象。