Мне очень сложно выяснить, как извлекать значения отношений между объектами. У меня есть подразделение продуктов питания и объект питания. Для демонстрационных целей я просто перечислял 1 атрибут для каждого. Название для еды и белка для еды. Мои отношения - это еда и еда с обратными отношениями, многие для многих. То, что я хочу, чтобы сделать, - принести Meal и вернуть значение белка, связанное с этой едой. В конечном итоге я буду получать питание по дате, а затем вытаскивать информацию о питании из этой еды. Решение, которое я нашел, возвращает больше, чем просто значение, как вы можете видеть по изображению ярлыка симулятора. Пожалуйста, любая помощь будет очень признательна! У меня есть ощущение, что есть более простой способ сделать то, что я пытаюсь сделать, но я искал часы и не могу понять это.Fetch Запрос возврата {(// value)} вместо значения
Я пробовал размещать изображения, но он не позволит мне, чтобы я опубликовал свой код и что происходит.
ViewController.swift
import UIKit
import CoreData
class ViewController: UIViewController {
@IBOutlet weak var label: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
let appDelegate = UIApplication.shared.delegate as! AppDelegate
let context = appDelegate.persistentContainer.viewContext
//================================
//CREATE MEAL AND FOOD
//================================
let newMeal = NSEntityDescription.insertNewObject(forEntityName: "Meal", into: context) as! Meal
newMeal.title = "Meal 1"
let newFood = NSEntityDescription.insertNewObject(forEntityName: "Food", into: context) as! Food
newFood.protein = "20"
newFood.setValue(newMeal, forKey: "meal")
//================================
//FETCH REQUEST
//================================
let request = NSFetchRequest<NSFetchRequestResult>(entityName: "Meal")
let sortDescriptor = NSSortDescriptor(key: "title", ascending: true)
request.sortDescriptors = [sortDescriptor]
request.returnsObjectsAsFaults = false
do {
//===============================
//EXTRACT RELATIONSHIP DATA
//==============================
let results = try context.fetch(request) as NSArray
for res in results {
let data = res as! Meal
let item = data.food
let strs = item.value(forKey: "protein")
self.label.text = "\(strs)"
}
} catch {
print ("error")
}
}
Моя метка отображения этого ...
{()}
мне нужно просто нажать на '20' из. Попытка установить значение label.text для str как! строка не работает. Любые указания? Большое вам спасибо
Нет, это не работает – lilbill412
Вы можете проверить тип «пункта» при трассировке? Что это? –
На какую переменную вы ссылаетесь? – lilbill412