хранить массив в основных данных с несколькими объектами - PullRequest
0 голосов
/ 04 мая 2020

У меня есть 3 сущности в основных данных с несколькими атрибутами:

StoredGame StoredTeam и StoredPlayer

  • Игры имеют отношение один-ко-многим с командами
  • У команды много-к-одному отношения с Играми
  • У команды много-много-много с Игроком
  • У игрока много-много-много с Командой

так что у меня есть эти 3 структуры для управления данными в приложении

struct Game: Equatable {
    static func == (lhs: Game, rhs: Game) -> Bool {
        return lhs.id == rhs.id
    }

    var id: Int
    var opponent: String
    var teams: [Team] = .init()

    init(id: Int,
         opponent: String,
         team: [Team] = .init())
    {
        self.id = id
        self.opponent = opponent
        self.team = team
    }
}

struct Team: Equatable {
    static func == (lhs: Team, rhs: Team) -> Bool {
        return lhs.id == rhs.id
    }

    var id: Int
    var players: [Player] = .init()

    init(id: Int, number: Int, players: [Player])
    {
        self.id = id
        self.players = players
    }
}

struct Player: Equatable {
    static func == (lhs: Player, rhs: Player) -> Bool {
        return lhs.id == rhs.id
    }

    var id: Int
    var name: String
    var number: Int

    init(id: Int,
         name: String,
         number: Int,)
    {
        self.id = id
        self.name = name
        self.number = number
    }
}

Я ищу способ записать игру, содержащую команду, содержащую игроков. Если я храню игру без команд, это не проблема, но я не могу найти способ сохранить эти команды

Так что в моем

class StoredGame: NSManagedObject {


}

я пробовал это:

    static func add(new game: Game) {
        let entity = NSEntityDescription.entity(forEntityName: "StoredGame", in: storage.viewContext)!
        let newGame = StoredGame(entity: entity, insertInto: storage.viewContext)
        newGame.opponent = game.opponent
        newGame.id = NSNumber(value: game.id)
        newGame.game_teams = ????

    }

Я также пытался преобразовать массив в NSSet, но ничего не могу найти, помогите! :)

...