Я пытаюсь вернуть строковое значение из сгруппированного словаря в моем файле 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 .. Цель состоит в том, чтобы сделать содержимое сгруппированного словаря доступным для ячейки коллекции. Есть лучший способ сделать это?