Строка из сгруппированного словаря, возвращающая ноль в CollectionView - PullRequest
0 голосов
/ 08 апреля 2020

Я пытаюсь вернуть строковое значение из сгруппированного словаря в моем файле CollectionViewController.swift. Вот моя функция, которая создает словарь:

  var groupArray = [String: [Entity]]()
  var categoryKeys: [String]? = []

func fetchGroups() {
  var groupedDictionary = Dictionary(grouping: categories.results, by: {$0.kind})
          [
            "book": [
              Entity,
              ].self,
            "movie": [
              Entity
              ].self,
            "song": [
              Entity
              ].self,
            "podcast": [
              Entity
              ].self   
          ]

 self.groupArray = groupedDictionary as? [String : [Entity]]

          for i in self.groupArray {
            self.categoryKeys?.append(i.key)
           }

          let encodedData = try!  JSONEncoder().encode(groupedDictionary)
          let jsonResult = String(data: encodedData, encoding: .utf8)
          print(jsonResult!)

            DispatchQueue.main.async {
              self.collectionView?.reloadData()
            }

        }

      } catch let err{
        print(err)
      }
    }
    task.resume()
  }

Тогда для моего представления коллекции у меня есть:

func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
    let cell = collectionView.dequeueReusableCell(withReuseIdentifier: cellID, for: indexPath) as! CustomCell

    var accessArray: [Entity] = ([])

    for i in self.groupArray{
      for t in i.value {
        self.images?.append(t.artwork!)

        accessArray.append(t)
        let group = p.value[indexPath.row]
      }
   }

    let group = accessArray[indexPath.row]

    cell.textLabel.text = group.name

    return cell
  }

Однако cell.textLabel.text = group.name возвращает nil и Я не уверен, почему ... (Неустранимая ошибка: неожиданно обнаружил ноль при неявном развертывании необязательного значения: file)

У меня такое ощущение, что это может быть связано с небезопасным объявлением / переносом groupArray .. Цель состоит в том, чтобы сделать содержимое сгруппированного словаря доступным для ячейки коллекции. Есть лучший способ сделать это?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...