我有两个与 SwiftData 相关的模型:
@Model
class Assistant {
var id: String
var threadId: String
var name: String
var model: String
var instructions: String
var lastMessageDate: Date
var messages: [Message]
init(id: String, threadId: String, name: String, model: String, instructions: String, lastMessageDate: Date, messages: [Message]) {
self.id = id
self.threadId = threadId
self.name = name
self.model = model
self.instructions = instructions
self.lastMessageDate = lastMessageDate
self.messages = messages
}
}
@Model
class Message {
var id: String
var systemId: UUID
var role: String
var date: Date
var content: String
var assistant: Assistant?
init(id: String, systemId: UUID, role: String, date: Date, content: String, assistant: Assistant? = nil) {
self.id = id
self.systemId = systemId
self.role = role
self.date = date
self.content = content
self.assistant = assistant
}
}
尝试添加新消息时
let newMessage = Message(id: UUID().uuidString, systemId: UUID(), role: "User", date: Date(), content: newAssistantMessage, assistant: assistant)
我收到错误
SwiftData/BackingData.swift:366:致命错误:找不到新关系的支持数据 - 可选(AncistrsAI.Assistant)
我感觉它之前可以工作,然后突然停止了。谁能发现这种关系中的错误吗?
我玩了很多 ID,也尝试过
@Relationship(inverse: \Message.assistant) var messages: [Message]
但这里没有任何作用。真是令人沮丧。
使用XCode 15.3,最低部署目标是iOS17.0。
我在撤消时也遇到了同样的问题。我遇到的问题是在某些时候撤消时我撤消了根对象,因此在添加时找不到支持数据