У меня проблема в том, что я не могу просмотреть представление своего приложения с помощью Canvas, потому что я всегда получаю ошибку:
"Завершение работы приложения из-за неперехваченного исключения "Исключение NSInvalidArgumentException", причина: "Объект NSManagedObject класса " App.MPG_A "должен иметь действительное описание NSEntityDescription".
Теперь более подробно: В представлении, которое я хочу просмотреть, у меня есть @Привязка абстрактной многопользовательской игры класса (MPG A или MPG B (подклассы), а многопользовательская игра является подклассом игры (рисунок ниже)
Комментарий: Мультиплеерная игра также является абстрактной сущностью (как игра) и "Класс" -> "MPG B"
И когда я хочу просмотреть класс, следующий класс, создав объект moc в предварительном просмотре, мое приложение вылетает, но я не знаю, почему:
import SwiftUI
import CoreData
import Combine
struct StandingEditView: View {
//multiplayer game with MPG A or MPG B class
@Binding var game : MultiplayerGame
@State private var invokeFunction : Bool = false
var body: some View {
VStack{
List{
ForEach(game.players!, id: \.self){ player in
HStack{
Text("\(player.name)")
}
}
}
Button(action: {
invokeFunction.toggle()
}, label: {
Text("Button")
})
}
}
}
struct StandingEditView_Previews: PreviewProvider {
static let moc = NSManagedObjectContext(concurrencyType: .mainQueueConcurrencyType)
static var previews: some View {
let game : MultiplayerGame = Standing(context: moc)
let p1 : Player = Player(context: moc)
let p2 : Player = Player(context: moc)
let p3 : Player = Player(context: moc)
p1.name = "Player One"
p2.name = "Player Two"
p3.name = "Player Three"
game.players = [p1,p2,p3]
return StandingEditView(game: .constant(game))
}
}
И единственными (не по умолчанию) атрибутами игрока являются -> >имя var : Строка
Я также попытался использовать AppDelegate, но это тоже не сработало...
Ошибка должна возникать из-за предварительного просмотра и moc-объекта, поскольку сам код компилируется, а другие представления видны без ошибки.
Спасибо вам за вашу помощь!