我有一个模型对象,该对象中有一些属性。基于某些条件,我希望在那里定义属性或不定义属性。例如,此属性是我的应用版本。
class Person {
var name: String
var address: String
var age: String
// I want some condition here like if myAppVersion > 1.0 then add isChild
// property to my model object other wise don't add that
var isChild: Bool
// Normal property again
var gender: String
}
我想要这种行为,因为属性来自后端,并且所有这些属性都是必需的,因此如果由于某种原因,BE没有发送客户端所期望的必需属性,那么我将崩溃。这些属性必须是必需的,而不是可选的。
答案 0 :(得分:3)
不要这样做。
将参数声明为可选,如果您不希望它具有值,则将其设置为nil。如果你想要有不同的实现,你应该创建两个单独的类,但这只是一个小小的改变是非常多余的。
如果您的应用程序因为属性的值为零而崩溃,那么您应该 来查看optional handling in Swift和nullability in Objective-C。