выборка базовых данных с отображением количества элементов в массиве, а не строк - PullRequest
0 голосов
/ 24 июня 2018

Мой код ниже выбирает Core Data. Проблема заключается в том, что в выборке Core Data должны отображаться имена. Пример "Рон", "Пол", "Джо". Вместо этого будет просто 3 для количества элементов в массиве. Как я могу получить имя, напечатанное на этикетке?

class tv: UIViewController {
    var itemsName : [NSManagedObject] = []

    override func viewDidAppear(_ animated: Bool) {
        super.viewDidAppear(animated)

        let appD = UIApplication.shared.delegate as! AppDelegate
        let context = appD.persistentContainer.viewContext
        let FetchRequest = NSFetchRequest<NSManagedObject>(entityName: "Team")

        do {
            itemsName = try context.fetch(FetchRequest)
        }catch {
            print("Ashley Tisdale")
        }

        geroge.text = String(itemsName.count)

        view.backgroundColor = UIColor.brown
    }

    @IBOutlet var geroge: UILabel!
}

enter image description here

enter image description here

1 Ответ

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

Вы фактически печатаете количество элементов в массиве.

Также вы должны изменить FetchRequest следующим образом:

let FetchRequest = Team.fetchRequest()

Теперь тип itemsName равен [Team].

Теперь создайте массив для храненияимена из результатов, как это:

var nameArray:[String] = []
for item in itemsName {
    nameArray.append(item.name) // here I assume the Team object has the key name which you want to retrieve
}

Теперь вы можете напечатать это:

george.text = "\(nameArray)"

Редактировать

Заменить это:

let appD = UIApplication.shared.delegate as! AppDelegate
let context = appD.persistentContainer.viewContext
let FetchRequest = NSFetchRequest<NSManagedObject>(entityName: "Team") 
do { 
    itemsName = try context.fetch(FetchRequest)
}catch { 
    print("Ashley Tisdale")
} 
geroge.text = String(itemsName.count)

При этом:

let appD = UIApplication.shared.delegate as! AppDelegate
let context = appD.persistentContainer.viewContext
let FetchRequest:NSFetchRequest<Team> = Team.fetchRequest() 

do { 
    itemsName = try context.fetch(FetchRequest)
}catch { 
    print("Ashley Tisdale")
} 

var nameArray:[String] = []
for item in itemsName {
    nameArray.append(item.lorde)
}
geroge.text = "\(nameArray)"

И измените тип данных itemsName с [NSManagedObjects] на [Team] следующим образом:

var itemsName:[Team] = []
...