在XCode中进行调试时,调试器告诉我NSDictionary对象包含1个键/值对。当调试控制台打印时,将显示键/值对的描述:
Printing description of testdictionary:
{
"Unknown (<1809>)" = <000000ff>;
}
我想同时提取和。我已经尝试了该站点其他地方介绍的valueForKey和objectforKey方法。但是我认为我很难理解关键是什么,价值是什么。
例如,
"Unknown (<1809>)"
是密钥吗?还是"<1809>"
是密钥?还是1809
是密钥?感谢蒂姆的答复。
NSDictionary来自CoreBluetoothFramework的didDiscoverPeripheral:方法,该方法将广告数据传递到名为“advertisementData”的NSDictionary中。
该词典包含各种内容,例如广告渠道和设备名称。但是,我试图从“advertisementData”中仅提取广告数据。我使用了像这样的corebluetooth“CBAdvertisementDataServiceDataKey”提供的密钥:
NSData* information;
information = [advertisementData objectForKey:CBAdvertisementDataServiceDataKey];
我之前曾将“信息”声明为NSDictionary *对象。但是在对Apple文档进行更多阅读之后,将其更改为NSData *。结果是一样的。调试器说它包含一个键/值对,如下所示:
"Unknown (<1809>)" = <000000ff>;
再次感谢。
尼克
最佳答案
例如,当您不知道字典中存在的键时,由于键值对来自外部来源,则可以使用enumerateKeysAndObjectsUsingBlock:
方法遍历字典中存在的所有键值对:
[testdictionary enumerateKeysAndObjectsUsingBlock::^(id key, id object, BOOL *stop) {
NSLog(@"The key is %@", key);
NSLog(@"The value is %@", object);
}];
关于ios - 如何从NSDictionary(iOS)中的键/值对中提取值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18932559/