首页 > 解决方案 > 在 Swift 4 中使用 KeyEnumerators

问题描述

有人可以帮我将下面的 Obj C 代码转换为 Swift 4。

我正在尝试KeyEnumeratorSwift 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;

}

标签: iosswiftswift4

解决方案


要遍历字典,您可以简单地执行以下操作:

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
}

推荐阅读