SwiftData @Model Class Schema не соответствует схеме таблицы SQLite в Default.StoreIOS

Программируем под IOS
Ответить
Anonymous
 SwiftData @Model Class Schema не соответствует схеме таблицы SQLite в Default.Store

Сообщение Anonymous »

Я пытаюсь вставить модель в хранилище устройства с помощью SwiftData. Вот моя модель данных: < /p>

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

import Foundation
import SwiftData

/// Represents one product scan in the user’s history.
@Model
final class Scan: Identifiable {

// MARK: - Persisted properties
@Attribute(.unique) var id: UUID           = UUID()
var productName:      String?
var brand:            String?
var scannedAt:        Date
var imagePath:        String
var gpt:              ChatGPTResponse      // strongly-typed API payload

// MARK: - Init
init(productName: String? = nil,
brand: String? = nil,
scannedAt: Date = .now, imagePath: String,
gpt: ChatGPTResponse) {
self.productName = productName
self.brand       = brand
self.scannedAt   = scannedAt
self.imagePath   = imagePath
self.gpt         = gpt
}
}

// MARK: - Typed response models (Codable)

struct ChatGPTResponse: Codable {
let productCategory:   String
let primaryBenefit:    String
let ingredients:       [Ingredient]
let overallVerdict:    OverallVerdict
let effectiveness:     EffectivenessScores

enum CodingKeys: String, CodingKey {
case productCategory = "product_category"
case primaryBenefit  = "primary_benefit"
case ingredients
case overallVerdict  = "overall_verdict"
case effectiveness   = "effectiveness_scores"
}
}

struct Ingredient: Codable {
let name:             String
let plainExplanation: String

enum CodingKeys: String, CodingKey {
case name
case plainExplanation = "plain_explanation"
}
}

struct OverallVerdict: Codable {
let summary: String
}

struct EffectivenessScores: Codable {
let coreBenefitStrength:          Int
let supportingIngredientsSynergy: Int
let absorptionAndDelivery:        Int
let durationOfEffect:             Int

enum CodingKeys: String, CodingKey {
case coreBenefitStrength          = "core_benefit_strength"
case supportingIngredientsSynergy = "supporting_ingredients_synergy"
case absorptionAndDelivery        = "absorption_and_delivery"
case durationOfEffect             = "duration_of_effect"
}
}

< /code>
всякий раз, когда я вставляю новый объект Scan через modelcontext.insert (), я сталкиваюсь с этой ошибкой: < /p>
CoreData: error: Row (pk = #) for entity 'Scan' is missing mandatory text data for property 'productCategory'
< /code>
После проверки файла по умолчанию.0|Z_PK|INTEGER|0||1
1|Z_ENT|INTEGER|0||0
2|Z_OPT|INTEGER|0||0
3|ZCOREBENEFITSTRENGTH|INTEGER|0||0
4|ZSUPPORTINGINGREDIENTSSYNERGY|INTEGER|0||0
5|ZABSORPTIONANDDELIVERY|INTEGER|0||0
6|ZDURATIONOFEFFECT|INTEGER|0||0
7|ZSCANNEDAT|TIMESTAMP|0||0
8|ZBRAND|VARCHAR|0||0
9|ZPRODUCTCATEGORY|VARCHAR|0||0
10|ZPRIMARYBENEFIT|VARCHAR|0||0
11|ZSUMMARY|VARCHAR|0||0
12|ZIMAGEPATH|VARCHAR|0||0
13|ZPRODUCTNAME|VARCHAR|0||0
14|ZID|BLOB|0||0
15|ZINGREDIENTS|BLOB|0||0
Почему свойства в таблице SQLite в Default.store Не соответствуют свойствам моего класса сканирования?

Подробнее здесь: https://stackoverflow.com/questions/796 ... default-st
Ответить

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

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

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

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

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