ios - 在Objective C中通过键从SwiftDeferredNSDictionary中提取一个值,其中键是Swift枚举
问题描述
给定
enum MyKey: String {
case aKey
}
let obj : [MyKey: Any] = [MyKey.aKey: "value"];
在我的 obj-c 方法中,我这样做:
[obj allKeys];
接着
for (id paramName in allKeys) {
id paramValue = [obj valueForKey:paramName]; // Crashes here
...
}
它崩溃了一个异常'NSInvalidArgumentException', reason: '-[__SwiftValue length]: unrecognized selector sent to instance
在这种情况下,如何正确提取值?
解决方案
事实证明,块枚举就像 Objective c 中的 Swift 字典的魅力一样。
[obj enumerateKeysAndObjectsUsingBlock:^(id paramName, id paramValue, BOOL* stop) { }];
推荐阅读
- sql-server - SQL Server - 包含 TOP 1 选择列的视图
- arrays - 用值填充数组到下一个空行
- javascript - 我想将我当前的 url 添加到属性内容的元标记
- jhipster - 我可以使用 SpringFox 生成客户端代码吗?
- flutter - 无法在 Flutter TabBarView 中本地化字符串
- java - 如何将保存在 firestore 数据库中的地理点数组检索到 latLng 数组列表
- python - 使用 Selenium 和 Python 查找存在 data-tb-test-id 属性而不是 id 的元素
- spring-boot - 为什么没有返回春季健康指标的详细信息?
- php - 如何使用laravel框架将单个pdf分成多个页面
- javascript - 使循环重新开始,并在完成每个步骤后返回起始颜色