【发布时间】:2018-02-10 20:07:10
【问题描述】:
我正在创建某种游戏跟踪器,并想问这种设计是否是错误的选择。
我正在使用 MVC 架构,并且在我的模型中我引用了其他模型,即在 Player 模型中我有
var name: String
var lastTimePlayed: Date?
var timesPlayed: Int
let playerID: String
var gamesPlayed = [Game]()
var matchesPlayed = [Game: [Match]]()
var gamesPlace = [Game: [Int]]()
var gamesPoints = [Game: [Int]]()
这是它的外观和图像:
箭头表示模型保持对另一个模型的引用。
只保存 gameID 和 matchID 或 gameName 而不是对 Game 和 Match 模型的引用会更好吗?保留直接引用对我来说更容易,因此我可以访问最后一场比赛的日期等,但我也可以通过其他方式进行。
当然,当我删除模型时,我会处理所有这些引用并将它们也删除,因此不会出现内存泄漏。
我的第二个问题是 - 当我尝试使用 NSCoding(在商店使用 NSKeyedArchiver.archiveRootObject)保存那些时我会遇到问题吗?它不会像循环一样从 Player 到 Game 到 Match 再到 Player 吗?
感谢您的帮助!
【问题讨论】: