验证模型属性,最佳实践

时间:2015-10-14 22:45:10

标签: ios swift model encapsulation

我希望在实例化之前验证我的模型的属性。

class Book {

    private var _title: String!

    var title: String {
        if title != "" {
            return _title
        } else {
            return nil
        }
    }
}

这显然会在return nil引发错误。我用这个作为我想要做的事情的图解说明。

我尝试使用可用的初始值设定项,但似乎init方法是应用属性验证的错误位置。

如何使用最佳做法实现这一目标?

1 个答案:

答案 0 :(得分:0)

这不是验证模型对象的最佳实践,但它可以通过简单的方式实现您的需求。

class Book {

   private var _title: String = ""

   var title: String {
       return _title
   }

   init?(title:String) {

       if title == "" {
           return nil
        } else {
            self._title = title
        }
    }
}

创建Book对象时,需要提供title。如果title为空,则不会创建对象(nil)。