Основные данные: Проблема с выполнением запроса на извлечение

#ios #swift #core-data #push-notification

Вопрос:

У меня возникли проблемы с выполнением запроса на извлечение для CoreData. У меня есть одна сущность с именем «Информация» с двумя строковыми атрибутами. Вот как я загружаю данные в CoreData:

  func application(... didReceiveRemoteNotification ...) {
       //Extract 'title' and 'body' (omitted for readability)
        
        let managedContext = persistentContainer.viewContext
        let newInfo = Info(context: managedContext)
        newInfo.title = title
        newInfo.body = body
    }
 

У меня возникли проблемы с созданием запроса на извлечение. Я получаю сообщение об ошибке, в котором говорится, что GCoreData: ошибка: Описания NSEntityDescriptions ни в одной модели не утверждают, что подкласс NSManagedObject ‘[имя приложения].Информация» so сущность сбита с толку. Вы уже загрузили свою модель NSManagedObjectModel ?

     @FetchRequest(entity: Info.entity(), sortDescriptors: []) var items: FetchedResults<Info>
    
    var body: some View {
       List(items) { item in
            Text(item.title!)
            Text(item.body!)
       }
    }
 

Комментарии:

1. А у вас есть @Environment(.managedObjectContext) var managedObjectContext ?

2. Я попытался ввести его прямо над @fetchRequest в contentView.swift. Это не устранило ошибку. Нужно ли ему идти куда — то еще- например, в AppDelegate.swift? Потому что я ввожу данные в CoreData в AppDelegate.swift.

3. Могу ли я предложить вам прочитать эту статью и остальные части серии или аналогичный учебник

4. Спасибо вам за учебник. Я читаю его и следую за ним. Уже на самом первом этапе возникает проблема. В учебнике говорится, что если я установлю флажок «Использовать основные данные», то xcode «Добавит файл Persistence.swift, который аккуратно хранит основные данные в одном месте». У меня этого нет. У меня есть только AppDelegate, SceneDelegate, contentView и файл .xcmodeld.

5. Вы сказали в предыдущем вопросе, что добавили это вручную.