2015-11-19 3 views
0

У меня есть массив объектов тега, у которых есть свойство, называемое тегом, которое является строкой.Как получить массив свойства объекта в Swift

public struct Tag { 
    public let name: String 
} 

Я хотел бы получить массив всех этих свойств имени.

Учитывая массив тегов, в Objective-C Я хотел бы сделать это с этой линии:

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

Как я могу достичь того же в Swift?

Я пробовал:

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

Но получаю ошибку компиляции:. «Значение типа„[Tag]“не имеет„имени“члена

ответ

2

Похоже, у вас есть массив, который содержит другой массив объектов Tag Это работает для меня:..

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

Да, это сейчас работает, я вернулся к нему я должен быть инициализирован массив неправильно или что-то. –