Ho un protocollo, "VariousThings" e due classi ad esso conformi, "ThingType1" e "ThingType2". Ho messo alcuni oggetti di questi due tipi di classi in un array contenente 'VariousThings'. Ora voglio solo prendere tutti gli oggetti da quell'array che sono del tipo di classe 'ThingType2' per esempio. Come posso fare questo?In Swift come posso filtrare una matrice di oggetti conformi a un protocollo dalla loro classe?
Ecco quello che ho finora:
protocol VariousThings: class {
}
class ThingType1: VariousThings {
}
class ThingType2: VariousThings {
}
let array: [VariousThings] = [ThingType1(), ThingType2()]
func itemsMatchingType(type: VariousThings.Type) -> [VariousThings] {
return array.filter { variousThing in
return (variousThing.self === type)
}
}
let justThingTypes1: [VariousThings] = itemsMatchingType(ThingType1)
'.self' non è in realtà necessario. – vadian
Nice one =) –
Buon consiglio su flatmap e ritorno T –