Основные данные в SwiftUI - PullRequest
       0

Основные данные в SwiftUI

0 голосов
/ 25 апреля 2020

Пытаясь реализовать основные данные в SwiftUI, я наткнулся на стену. Следуя многим учебным пособиям, я написал следующий проект, предположительно в точном соответствии с инструкциями, но приложение не будет собираться.

Я застрял на очень ранней стадии, поэтому я надеюсь, что здесь кто-то сможет помочь.

  • Я создал 2 сущности в моей XCDtatamodel, каждая из которых имеет строковое свойство с именем "airportName"
  • Я просто пытаюсь отобразить список одной из сущностей:
import SwiftUI
import CoreData

struct ContentView: View {

    @Environment(\.managedObjectContext) var managedObjectContext

    @FetchRequest(entity: Takeoffs.entity(), sortDescriptors: [NSSortDescriptor(keyPath: \Takeoffs.eventDate, ascending: false)]) var fetchedTakeoffs: FetchedResults<Takeoffs>

    var body: some View {

        List {
            ForEach (fetchedTakeoffs, id: \.self) { item in
                Text(item.airportName) // THIS IS WHERE I GET THE ERROR

            }
        }
    }
}

struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        let context = (UIApplication.shared.delegate as! AppDelegate).persistentContainer.viewContext
        return ContentView().environment(\.managedObjectContext, context)
    }
}

Но XCode сообщает мне, что «Значение типа NSManagedObject не имеет члена airportName». Это похоже на то, что мой XCDatamodel не подключен к приложению.

Я создал проект, проверив SwiftUI, Используйте флажки CoreData.

Весь код можно найти здесь:

https://github.com/Esowes/RecentExp

Спасибо за любые указатели.

1 Ответ

1 голос
/ 25 апреля 2020

Я могу построить это. Но не уверен, что он будет работать так, как вы ожидали. Пожалуйста go до конца. Я думаю, что свойства элементов takeOff не являются обязательными, вы получили ошибку.

List {
    ForEach (fetchedTakeoffs, id: \.self) { item  in
       Text(item.airportName ?? "")
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...