我有一個非常困難的時間搞清楚如何提取實體之間的關係值。我有一個Food實體和一個Meal實體。爲了演示目的,我只列出了每個屬性的1個屬性。用於餐食的標題和用於食物的蛋白質。我的人際關係是餐飲和食物之間的關係,多對多。我想要做的是獲取一份膳食並返回與該膳食相關的蛋白質值。我將最終通過日期提取膳食,然後從該膳食中提取營養信息。我發現的解決方案不僅返回了模擬器標籤圖片所示的值。請任何幫助將非常感激!我有一種感覺,有一種更簡單的方法來做我想做的事情,但我一直在尋找幾個小時,但無法弄清楚。取回請求返回{(//值)}而不僅僅是值
我嘗試發佈圖片,但它不會讓我這樣我會發布我的代碼,發生了什麼。
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