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方法是应用属性验证的错误位置代码>如果属性无效,您想要什么?