【问题标题】:Merge two NSMutableArray in Swift在 Swift 中合并两个 NSMutableArray
【发布时间】:2021-06-03 02:11:10
【问题描述】:

我有两个 NSMutableArray:

let value = data as NSDictionary
                let array_item : NSArray! = (value.value(forKey: "mids") as! NSArray)
                if let array = array_item {
                    let array_list : NSMutableArray! =  NSMutableArray(array:array)
                    let array_list_checksum : NSMutableArray = NSMutableArray()
                    let array_list_server_version : NSMutableArray = NSMutableArray()
                    
                    for item in array_list {
                        let dic_item : NSDictionary! = item as? NSDictionary
                        if let dic = dic_item {
                            array_list_checksum.add(dic.value(forKey: "checksum")!)
                            array_list_server_version.add(dic.value(forKey: "server_version")!)
                            array_server_versions = array_list_server_version
                        }
                    }

在 array_list_checksum 我有类似的字符串:“efopfkefokepre4345345345345”,在 array_list_server_versions 我有类似的字符串:“2018 年的 2.0 版” 我需要做的是以这种格式合并每个校验和和每个服务器版本的信息: “2018 年版本 2.0 校验和:efopfkefokepre4345345345345”,带有不包含在数组中的“校验和”字。 所以我的问题是在 Swift 中合并这两个 NSMutableArray 以及如何在两个值之间添加单词“checksum:”。

【问题讨论】:

  • 这很快,为什么要使用 NSArray、NSMutableArray 和 NSDictionary?为什么不使用原生类型,数组和字典?

标签: swift merge nsarray nsmutablearray


【解决方案1】:

您有两个要合并的数组:

let array_list_checksum : NSMutableArray = NSMutableArray()
let array_list_server_version : NSMutableArray = NSMutableArray()

使用 zip 运算符将数组值合并成对的元组。并使用 map 运算符创建具有您想要的格式的合并数组:

let merged = zip(array_list_server_version, array_list_checksum).map{
    "\($0) checksum: \($1)"
}

如果需要,将结果数组转换为 NSMutableArray:

let mergedArray = NSMutableArray(array: merged)

几点说明:

  • 如果您有 swift-only 项目,请使用 swift 默认数组和字典
  • iOS 中的 CamelCase 优于 snake_case

【讨论】:

    猜你喜欢
    • 2018-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-09
    • 1970-01-01
    相关资源
    最近更新 更多