#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. Вы сказали в предыдущем вопросе, что добавили это вручную.