- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
在 XCode 中调试时,调试器告诉我 NSDictionary 对象包含 1 个键/值对。当调试控制台打印键/值对的描述时显示:
Printing description of testdictionary:
{
"Unknown (<1809>)" = <000000ff>;
}
我想同时提取 <1809> 和 <000000ff>。我已经尝试了本网站其他地方描述的 valueForKey 和 objectforKey 方法。但我想我很难理解什么是关键,什么是这里的值(value)。
例如是"Unknown (<1809>)"
key ?或者是 "<1809>"
key ?或者是 1809
key ?
感谢蒂姆的回复。
NSDictionary 来自 CoreBluetoothFramework didDiscoverPeripheral: 方法被调用并将广告数据传递到名为“advertisementData”的 NSDictionary。
这本词典包含各种内容,例如广告 channel 和设备名称。但是,我试图从“advertisementData”中提取广告数据。我使用了 corebluetooth“CBAdvertisementDataServiceDataKey”提供的 key ,如下所示:
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/
我是一名优秀的程序员,十分优秀!