통해 속성 :는 아래 그림에 도시 된 바와 같이 I 두 <code>Entities</code>이 관계
Food
및 Restaurant
한다.
나는 지금은 조금 떨어져 있지만, 기본적으로 나는 음식 목록을 만들고있다. 사용자는 음식의 이름과 식당 이름을 새 항목에 추가합니다. 나는 개발의 초기 단계에 있습니다.
그래서AddViewController
에
및 저장 방법, 내가 가진 : 변수와
if let appDelegate = (UIApplication.shared.delegate as? AppDelegate) {
foodEntry = FoodManagedObject(context: appDelegate.persistentContainer.viewContext)
foodEntry.nameOfFood = foodNameTextField.text
foodEntry.restaurantName?.nameOfRestaurant = restaurantNameTextField.text
선언 :
var에 foodEntry을 : FoodManagedObject를!
TimelineView
에서 NSFetchedResultsController
을 사용하여 FoodManagedObject
을 가져 와서 라벨에있는 음식의 이름을 표시 할 수 있습니다. 그러나 레스토랑의 이름은 표시되지 않습니다.
let fetchRequest: NSFetchRequest<FoodManagedObject> = FoodManagedObject.fetchRequest()
let sortDescriptor = NSSortDescriptor(key: "nameOfFood", ascending: true)
fetchRequest.sortDescriptors = [sortDescriptor]
if let appDelegate = (UIApplication.shared.delegate as? AppDelegate) {
let context = appDelegate.persistentContainer.viewContext
fetchedResultsController = NSFetchedResultsController(fetchRequest: fetchRequest, managedObjectContext: context, sectionNameKeyPath: nil, cacheName: nil)
fetchedResultsController.delegate = self
do {
try fetchedResultsController.performFetch()
if let fetchedObjects = fetchedResultsController.fetchedObjects {
foods = fetchedObjects
}
} catch {
print(error)
}
}
을하고 cellForRow
의 :
그래서, 적절하게 가져 오는거야
cell.foodNameLabel.text = foods[indexPath.row].nameOfFood
cell.restaurantLabel.text = foods[indexPath.row].restaurantName?.nameOfRestaurant
내가 오류를 얻을 수 없지만, 레스토랑의 이름은 결코 표시되지 않습니다. 식품 엔티티에 theRestaurant
라는
var foods:[FoodManagedObject] = []
그래서 나는 속성에 추가 시도하고 그것은 작동하지만 관계를 통해 호출이 작동하는 것 같다 결코 :
식품이다.
내가 여기에 뭔가 분명한 것을 놓치고 있습니까?
혹시'restaurantName' 개체를 만들 수 있습니까? –