【问题标题】:How to get an array of a property on an object in Swift如何在 Swift 中获取对象的属性数组
【发布时间】:2015-11-19 11:16:24
【问题描述】:

我有一个 Tag 对象数组,它有一个名为 tag 的属性,它是一个字符串。

public struct Tag {
    public let name: String
}

我想获取所有这些名称属性的数组。

给定一个标签数组,在 Objective-C 中我会用这一行来完成这个:

NSArray *tagNames = [tags valueForKey:@"name"]

如何在 Swift 中实现同样的目标?

我试过了:

let tagNames = tags.map({ $0.name })

但是得到一个编译器错误:“类型 '[Tag]' 的值没有成员 'name'。

【问题讨论】:

    标签: arrays swift dictionary key-value-coding


    【解决方案1】:

    看起来您有一个数组,其中包含另一个 Tag 对象数组。 这对我有用:

    let tags = [Tag(name: "tag1"), Tag(name: "tag2"), Tag(name: "tag3")]
    let names = tags.map{$0.name }
    print("Names: \(names)")
    

    【讨论】:

    • 是的,它现在可以工作了,我已经回去了。我一定是错误地初始化了数组或其他什么。
    猜你喜欢
    • 2016-05-22
    • 1970-01-01
    • 2018-11-14
    • 1970-01-01
    • 2018-11-28
    • 1970-01-01
    • 2011-05-27
    • 1970-01-01
    相关资源
    最近更新 更多