Estou seguindo este tutorial sobre como criar um TableView dobrável:
https://www.youtube.com/watch?v=Q8k9E1gQ_qg
Ele está carregando um array String de nomes na tableview assim:
struct ExpandableNames {
var isExpanded: Bool
let names: [String]
}
var twoDimensionalArray = [
ExpandableNames(isExpanded: true, names: ["Amy", "Bill", "Zack", "Steve", "Jack", "Jill", "Mary"]),
ExpandableNames(isExpanded: true, names: ["Carl", "Chris", "Christina", "Cameron"]),
ExpandableNames(isExpanded: true, names: ["David", "Dan"]),
ExpandableNames(isExpanded: true, names: ["Patrick", "Patty"]),
]
Em vez disso, gostaria de criar a matriz String de nomes da variável "nome" do meu modelo Codable User:
struct User: Codable {
//var id: Int
var user_id: Int
var name: String
static func endpointForUsers() -> String {
return "users.php"
}
}
EDIT: Resumindo... Eu tenho um [User] e quero um [String] composto pelas propriedades do nome do array [User].
Você poderia explicar como posso carregar todos os nomes do meu usuário codificáveis como uma matriz String? (Como aquele no tutorial.)
Desde já, obrigado!
Se você possui um array de
User
objetos e deseja convertê-lo em um array deString
s a partir das propriedades de nome de cada usuário você pode usar a função map().Supondo que você tenha 2 arrays de objetos User:
(Escrevi minha resposta na forma de uma função para maior clareza, mas como se trata de uma única linha de código, provavelmente é mais limpo e simples usar apenas a instrução map embutida em seu código.)