Получение из модели SwiftData для виджета DynamicAppIntentIOS

Программируем под IOS
Ответить Пред. темаСлед. тема
Anonymous
 Получение из модели SwiftData для виджета DynamicAppIntent

Сообщение Anonymous »

(Моя) проблема, связанная с (см. комментарии): SwiftUI — поделитесь представлением SwiftData View с виджетом
Любитель Swift... Не стесняйтесь указать, насколько плох код. >
Я пытаюсь создать приложение SwiftUI, и у меня есть модель SwiftData под названием Diem (класс событий обратного отсчета). Модель связана с DynamicAppIntent, поэтому пользователь должен иметь возможность выбрать один из обратных отсчетов в модели для отображения в виджете. Однако каждый раз, когда я извлекаю данные из модели, Xcode выдает FatalError. Подробности см. ниже.
Журнал:

Код: Выделить всё

Loading diems to suggest for specific diem...
Found 4 diems
Loading diems for identifiers: ["to"]
SwiftData/DataUtilities.swift:65: Fatal error: Couldn't find \Diem.id on Diem with fields [SwiftData.Schema.PropertyMetadata(name: "name", keypath: \Diem.name, defaultValue: nil, metadata: Optional(Attribute - name: , options: [unique], valueType: Any, defaultValue: nil, hashModifier: nil)), SwiftData.Schema.PropertyMetadata(name: "date", keypath: \Diem.date, defaultValue: nil, metadata: nil), SwiftData.Schema.PropertyMetadata(name: "detail", keypath: \Diem.detail, defaultValue: nil, metadata: nil)]
Запрос объекта/намерения.

Код: Выделить всё

struct DiemEntityQuery: EntityQuery, Sendable {
func entities(for identifiers: [DiemEntity.ID]) async throws -> [DiemEntity] {
logger.info("Loading diems for identifiers: \(identifiers)")
let container = try ModelContainer(for: Diem.self)
let modelContext = ModelContext(container)
// VVV FATALERROR VVV
let diems = try modelContext.fetch(FetchDescriptor(predicate: #Predicate { identifiers.contains($0.id) }))  // FATAL ERROR
// AAA FATALERROR AAA
logger.info("Found \(diems.count) diems")
return diems.map { DiemEntity(from: $0) }
}

func suggestedEntities() async throws -> [DiemEntity] {
logger.info("Loading diems to suggest for specific diem...")
let container = try ModelContainer(for: Diem.self)
let modelContext = ModelContext(container)
let diems = try modelContext.fetch(FetchDescriptor())
logger.info("Found \(diems.count) diems")
return diems.map { DiemEntity(from: $0) }
}
}
Полный проект находится на GitHub, если кто-то захочет потратить свое драгоценное время, чтобы проверить его... Я застрял в этой проблеме несколько месяцев и был бы ОЧЕНЬ признателен за некоторую помощь.
Проблема возникает как в iOS 17, так и в 18. Я пробовал добавить явный идентификатор в модель Diem, но модель даже не смогла инициализироваться...Может быть, это проблема с моим провайдером? Опять же, я не нашел в Интернете учебных пособий, объясняющих, как использовать DynamicAppIntents со SwiftData...
WidgetExamples @pawello2222 оказались очень полезными. Я просто хотел бы, чтобы pawellow добавил еще один пример, сочетающий в себе SwiftData и DynamicAppIntent. Я также ссылался на собственный BackyardBirds от Apple, но SwiftData Intent, похоже, не работает, и кажется, что-то решает проблему?
Спасибо!

Подробнее здесь: https://stackoverflow.com/questions/790 ... ent-widget
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • SwiftData Custom Migration всегда терпит неудачу - возможна ошибка в SwiftData
    Гость » » в форуме IOS
    0 Ответы
    33 Просмотры
    Последнее сообщение Гость
  • SwiftData Custom Migration всегда терпит неудачу - возможна ошибка в SwiftData
    Anonymous » » в форуме IOS
    0 Ответы
    10 Просмотры
    Последнее сообщение Anonymous
  • Как получить элементы от Swiftdata в Appintent для виджета
    Anonymous » » в форуме IOS
    0 Ответы
    9 Просмотры
    Последнее сообщение Anonymous
  • Доступ к полю экземпляра виджета из внешнего виджета
    Anonymous » » в форуме Jquery
    0 Ответы
    73 Просмотры
    Последнее сообщение Anonymous
  • Почему не происходит сбоя при назначении виджета-члена в качестве центрального виджета в QMainWindow
    Anonymous » » в форуме C++
    0 Ответы
    86 Просмотры
    Последнее сообщение Anonymous

Вернуться в «IOS»