Ios 验证模型属性、最佳实践

Ios 验证模型属性、最佳实践,ios,swift,model,encapsulation,Ios,Swift,Model,Encapsulation,我想在实例化模型之前验证它的属性 class Book { private var _title: String! var title: String { if title != "" { return _title } else { return nil } } } 这显然会在返回nil时抛出一个错误。我用这个作为我试图做的一个图解 我尝试过使用失败的初始值设定项,但是

我想在实例化模型之前验证它的属性

class Book {

    private var _title: String!

    var title: String {
        if title != "" {
            return _title
        } else {
            return nil
        }
    }
}
这显然会在返回nil时抛出一个错误。我用这个作为我试图做的一个图解

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


如何使用最佳实践实现这一点?

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

class Book {

   private var _title: String = ""

   var title: String {
       return _title
   }

   init?(title:String) {

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

创建
书籍
对象时,需要提供
标题
。如果
title
为空,则不会创建对象(无)。

我不明白您想要什么。您不能检查
标题!=“”
,因为它将再次调用
标题
,并将无限循环。另外,您的
标题
是一个
非nil变量
,因此,您不能返回nil。@t4nhpt我想知道验证模型对象的最佳做法是什么?例如,是否要将其选中为nil,然后返回空?例如:如果试图用
title=“”
实例化一本书,则不应创建该对象。或者,不应创建具有
腿>4
的狗的实例@t4nhptnotice在我的问题中,我指定了
我已经尝试使用失败的初始值设定项,但是似乎init方法是应用属性验证的错误位置如果属性无效,您想要什么?