SwiftUI预览具有关系的核心数据

问题描述 投票:0回答:2

[我正在尝试使用Core Data和SwiftUI的预览,并认为我已经接近了,但无法使其正常工作。

    static var previews: some View {
        let context = (UIApplication.shared.delegate as! AppDelegate).persistentContainer.viewContext
        let newGame = Game.init(context: context)
        newGame.gameName = "Testy Game"
        newGame.gameDescription = "Wooo play the thing"
        newGame.goal = Goal.init(goalName: "Try Harder", goalComplete: false, goalOfGame: newGame)
        return GameGoalsDetail(game: newGame).environment(\.managedObjectContext, context)
    }
}

我在newGame.Goal = Goal.init ...行上获得了对成员'init(entity:insertInto :)'的歧义引用。“>

我正在尝试弄清楚如何初始化一个新游戏,然后在此之后初始化与其相关的目标。

我的核心数据游戏类将gameName,gameDescription和一个目标作为NSSet ?。核心数据目标类具有GoalName,goalComplete和goalOfGame:游戏?。我认为我的问题在于将两者联系起来。

提前了解帮助,并愿意根据要求共享更多代码。

我正在尝试使用Core Data和SwiftUI的预览,并认为我已经接近了,但无法使其正常工作。静态var预览:某些视图{让上下文=(UIApplication ....

swift xcode core-data swiftui preview
2个回答
2
投票

Goal@NSManagedObject,这就是为什么您需要将其init与上下文一起使用的原因。当您创建实体对象时,必须将其放置在某个商店中-上下文就是该商店。之后,您可以转换所有需要的属性,包括链接。


2
投票

如果它们是一对多或多对多关系,则不能简单地将目标分配给游戏。当您将核心数据用于关系时,您将获得带有关系名称的免费“添加”方法。您应该在一行上创建目标

© www.soinside.com 2019 - 2024. All rights reserved.