ios - 快速使用 map()

标签 ios swift

我有一个变量。它包含电话号码。

我是这样使用的:

println(person.phoneNumbers!.map( {$0.value} ))

输出:

[555-478-7672, (408) 555-5270, (408) 555-3514]

您可以看到有三个电话号码。我怎样才能迭代这个变量?

我需要这样的东西:

Phone 1: 555-478-7672
Phone 2: (408) 555-5270
Phone 3: (408) 555-3514

最佳答案

此解决方案适用于 Swift 1.2

for (index, number) in enumerate(person.phoneNumbers!.map { $0.value }) {
    println("Phone \(index): \(number)")
}

因为我被这个 吓到了! 我会选择以下版本

if let numbers = person.phoneNumbers {
    for (index, number) in enumerate(numbers.map { $0.value }) {
        println("Phone \(index): \(number)")
    }
}

更新

下面的代码试图回答下面评论中添加的问题。

if let numbers = person.phoneNumbers {
    let list = numbers.map { $0.value }
    let json : [String:AnyObject] = ["phoneNumbers": list]
}

更新#2

请在下面找到第二个代码块,针对 Swift 2.0 进行了更新

if let numbers = person.phoneNumbers {
    for (index, number) in (numbers.map { $0.value }).enumerate() {
        print("Phone \(index): \(number)")
    }
}

关于ios - 快速使用 map(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32361048/

相关文章:

ios - SwiftyJSON 不断返回空对象

ios - 从 uitextfield 获取值而不带可选

swift - 如何将 barButtonItem 添加到工具栏

iphone - 如何让 iPhone 屏幕变暗

ios - 如何在项目中重新安装 Podfile?

android - 为多个平台创建翻译文件的最佳做法

swift - 从通讯录中获取 kABAddressCountryCodeKey

ios - 如何向第 3 方 iOS 库添加功能?

ios - UICollectionViewCell 中 UILabel 的 UIView 动画 block 不起作用

ios - AVPlayer 锁屏控件