ios - 在 Swift 4 中使用 KeyEnumerators

标签 ios swift swift4

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

我正在尝试在 Swift 4 中使用 KeyEnumerator 。但它说 [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
}

关于ios - 在 Swift 4 中使用 KeyEnumerators,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50269591/

相关文章:

ios - 如果为空则删除目录

c# 如何通过网页 (Safari) 在 iPAD 或 iPhone 上访问网络摄像头和麦克风

json - OpenWeatherMap 和 Swift 4

ios - 无法在 WKWebView Swift 4 中加载本地 html 文件

ios - 重定向到具有不同数据的同一个 UIViewController?

iOS 多行标题栏

ios - iOS 7 iPhone 的启动图像

swift - header 意外出现在 iOS 10 及更低版本的所有 View Controller 中

ios - Google 翻译 api,来自此 ios 客户端应用程序的请求\u003cempty\u003e 被阻止

swift - 在 ios Swift 中的 Images.xcassets 文件夹中的 Collection View 中显示图像