实现一对多关系的类结构。迅速

时间:2015-02-05 11:45:00

标签: class swift structure one-to-many

基本上我正在尝试为Person和Person的宠物实现一个类。在它中,Person类和Pet类的形式非常简单:

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?
}

现在我希望能够加载与特定用户名相关的所有宠物。如果我有上述课程,那只有一个宠物。如果我在Person类中执行数组,则没有Load方法。问题是,我应该创建一个新的类,如下所示:

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

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

这有意义吗?或者是否有更好的方法来构建课程?我的问题清楚了吗?感谢您提前提供任何帮助。

1 个答案:

答案 0 :(得分:0)

我正在使用结构而不是我的数据模型的类。 Structs and Classes

我不会使用选项,除非我真的不得不这样做,并且有一些用例你必须这样做。我根本不会使用隐式解包的选项...即!这是一个感叹'因为某种原因。您应该了解何时使用不同类型的选项。Why create implicitly unwrapped optionals

我不会像你一样创建一个Pets课程。所有这些都将存储在您的数据库中以供查询...可能是核心数据,或者如果您有其他类来保存数据,那么它将只是[String:[Pet]]的字典/地图,您可以查找所有宠物的字典/地图用户名