код, извлекаемый из базовых данных, неправильно отображается в метке ячейки табличного представления - PullRequest
0 голосов
/ 13 июня 2019

Я извлекаю основные данные и печатаю их на этикетке.Проблема в том, что печатается на этикетке, имеет много ненужных вещей.Как вы можете видеть на фото ниже.В каждой ячейке представления коллекции я хочу, чтобы она печатала 1 элемент массива.Так что если в массиве есть [Ванесса, Тейлор, Бастиста].В ячейке представления коллекции должна быть напечатана vanessa.

        var people: [Jessica] = []
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
    let cell = newCollection.dequeueReusableCell(withReuseIdentifier: cellId, for: indexPath) as! CustomeCell
    cell.backgroundColor  = .white
    cell.layer.cornerRadius = 5
    cell.layer.shadowOpacity = 3
    cell.textLabel.text = people[indexPath.row].playName
    return cell
}

БОЛЬШЕ МЕТОДОВ

      override func viewWillAppear(_ animated: Bool) {
    fetchData()
}

func fetchData() {

    do {
        items = try context.fetch(Jessica.fetchRequest())

        DispatchQueue.main.async {
            self.newCollection.reloadData()
        }
    } catch {
        print("Couldn't Fetch Data")
    }
}

ссылка на Core Data Pic

фотография коллекциивид ячейки

1 Ответ

0 голосов
/ 13 июня 2019
var people: [People] = [] //Any suitable variable

func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
    let cell = newCollection.dequeueReusableCell(withReuseIdentifier: cellId, for: indexPath) as! CustomeCell
    cell.backgroundColor  = .white
    cell.layer.cornerRadius = 5
    cell.layer.shadowOpacity = 3
    cell.textLabel.text = people[indexPath.row].name //retrieve the name from your array
    return cell
}



func fetchData() {
    do {
        people = fetchPeople()
        DispatchQueue.main.async {
            self.newCollection.reloadData()
        }
    } catch {
        print("Couldn't Fetch Data")
    }
}

func fetchPeople() -> [People] {
    guard let appDelegate = UIApplication.shared.delegate as? AppDelegate else { return [] }
    let context = appDelegate.persistentContainer.viewContext
    let fetchRequest = NSFetchRequest<NSFetchRequestResult>(entityName: "PeopleEntity")
    let items = try! context.fetch(fetchRequest)
    var detail: [People] = []
    for data in items as! [NSManagedObject] {
        var p = People(name: (data.value(forKey: "name") as? String) ?? "N/A") //check for nil
        detail.append(p)
    }
    return detail
}
...