Несколько ключей JSON в моем API.Как я могу отобразить другой CollectionViewCell с параметром KEY? - PullRequest
0 голосов
/ 01 июня 2018

Вопрос: у меня есть несколько ключей JSON в моем API.То, что я пытаюсь сделать, это когда один из моих ключей в моем JSON - это -> глагол: «общий доступ» или -> глагол: «опубликовано» Я хочу, чтобы он отображал другой UICollectionViewCell.

Я делаю все программно.Я делаю MVC подход.

Моя модель ниже:

struct myModel: Decodable {
    var verb: String?
    var date: String?
    var type: String?
    var style: String?
    var image_url: String?
    var id: String?
}

1 Ответ

0 голосов
/ 01 июня 2018

Я бы не рекомендовал хранить ваше свойство 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 {
     ....
   }
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...