Я бы не рекомендовал хранить ваше свойство verb
в виде строки, так как оно требует от вас сравнения жестко закодированных строк, чтобы выяснить, как будет выглядеть ваша ячейка представления коллекции.Вместо этого вам, вероятно, следует использовать перечисление:
struct MyModel { // Type names should use pascal case in Swift
var verb: State?
....
enum State {
case shared
case posted
}
}
// Decode your enums from strings
extension MyModel.State: Decodable {
enum CodingKeys: String, CodingKey {
case shared
case posted
}
}
Затем создайте нужную ячейку в вашем UICollectionViewDataSource:
func collectionView(_ collectionView: UICollectionView,
cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let model = ... // retrieve your model object here
if model.verb == .shared {
// Pass the pertinent identifier
let cell = collectionView.dequeueReusableCell(withReuseIdentifier:...)
return cell
else {
....
}
}