2015-10-14 158 views
0

我想在实例化之前验证模型的属性。验证模型属性,最佳实践

class Book { 

    private var _title: String! 

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

这显然会在return nil引发错误。我正在使用它作为我正在尝试做的事情的图形说明。

我已经尝试使用failable初始化器但是它看起来像init方法是错误的地方应用属性验证。

这是如何使用最佳实践实现的?

+0

我不明白你想要什么。你不能检查'title!=“”'因为它会再次调用'title',并且会无限循环。另外,你的'title'是一个'不为零的变量',所以你不能返回零。 – t4nhpt

+0

@ t4nhpt我想知道什么是最佳实践来验证模型对象 –

+0

你想验证什么?例如,你想检查它为零然后返回空吗? – t4nhpt

回答

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为空,则不会创建该对象(无)。

+0

在我的问题中注意到我指定'我尝试使用failable初始化器但是它看起来像init方法是错误的地方应用属性验证。 ' –

+0

感谢您的回答 –

+0

如果属性无效,您想要什么? – t4nhpt