ios - 在 Swift 4 中使用 KeyEnumerators
问题描述
有人可以帮我将下面的 Obj C 代码转换为 Swift 4。
我正在尝试KeyEnumerator
在Swift 4
. 但它说 [AnyHashable: Any] 类型的值没有成员 keyEnumerator
- (NSString *)getParamsFromDictionary:(NSDictionary *)data encode:(BOOL)encode {
NSMutableString *params = [[NSMutableString alloc] init];
NSEnumerator *enumerator = [data keyEnumerator];
BOOL first = YES;
id key;
while ((key = [enumerator nextObject])) {
NSString *value = [data objectForKey:key];
if (first) [params appendFormat:@"%@=%@", key, value];
else [params appendFormat:@"&%@=%@", key, value];
first = NO;
}
return params;
}
解决方案
要遍历字典,您可以简单地执行以下操作:
let dictionary = [
"first": 1,
"second": 2
]
for (key, value) in dictionary {
print("\(key)=\(value)")
}
或者
dictionary.forEach { (key, value) in
print("\(key)=\(value)")
}
更具体地说,对于您的代码:
var first = true
for (key, value) in dictionary {
let prefix = first ? "" : "&"
let string = "\(prefix)\(key)=\(value)"
first = false
}
推荐阅读
- c - Segmentation Fault 11 - 在 C 中的文件中查找单词
- oracle - 将多行电话数据合并为显示开始和结束日期的单行的脚本
- javascript - 每次移除 DOM 元素之前移除事件
- image - Flutter - 如何仅将图像的黑色着色,而不接触透明或白色部分?
- swift - 如何将 UIView 的位置设置为与按钮相同
- reactjs - React Native - 尝试取消订阅侦听器时出错
- java - 在 Fragment 中实现接口
- graphviz - 如何在graphviz中制作一个从外部节点到内部节点的图?
- python - 使用内联和非内联块时的 Jinja2 缩进
- unit-testing - 在哪里/如何在带有单元测试的 go 项目中构造对象