为一对多关系实现 class 结构。 Swift

Implementing a class structure for one-to-many relationship. Swift

基本上我正在尝试为一个人和一个人的宠物实施 class。在非常简单的形式中,Person class 和 Pet class 会像这样:

class Person {
    var email  : String!
    var name   : String!
    var pets   : [Pet]!

    init(userName: String) {
        email = userName

       // load Person from CloudKit database
    }
}

class Pet {
    var name   : String!
    var breed  : String?
}

现在我希望能够加载与特定用户名相关的所有宠物。如果我有上面的 class,那只能容纳一只宠物。如果我像在 Person class 中那样做一个数组,就没有 Load 方法。问题是,我是否应该创建一个新的 class 宠物,如下所示:

class Pets {
    var userName : String
    var pets     : [Pet]

    init(email: String) {
        // load all pets related to user here
    }
}

这有意义吗?还是有更好的方法来构建 class?我的问题够清楚了吗?提前感谢您的帮助。

我会为我的数据模型使用 class 以外的结构。 Structs and Classes

我不会使用可选值,除非我真的不得不这样做,并且有一些用例是您必须使用的。我也根本不会使用隐式解包选项......即!这是一个 'exclamation' 是有原因的。您应该仔细阅读何时使用不同类型的选项。Why create implicitly unwrapped optionals

我不会有你创造的宠物 class。所有这些都将存储在您的数据库中以供查询……可能是核心数据,或者如果您有其他 class 来保存数据,那么它只是 [String: [Pet] 的 dictionary/map ] 然后你可以从 dictionary/map

中查找所有宠物的用户名