2015-10-14 228 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