Ios 如何检查是否已设置类的所有可选成员?

Ios 如何检查是否已设置类的所有可选成员?,ios,swift,Ios,Swift,我需要检查是否已经设置了类的所有可选属性 我可以编写一个函数来检查每个属性,但我想知道是否有一个更快的方法在属性之间迭代,或者只是一个功能来检查是否所有类成员都已初始化 可选类型的属性会自动初始化为值nil,这表示该属性有意在初始化期间“还没有值”。因此,只需检查可选属性是否为nil,就可以知道它是否已设置。可选类型的属性会自动初始化为nil值,这表明该属性有意在初始化过程中“还没有值”。所以只需检查可选属性是否为nil,就可以知道它是否已设置。您可以定义一个存储属性 var allProper

我需要检查是否已经设置了类的所有可选属性


我可以编写一个函数来检查每个属性,但我想知道是否有一个更快的方法在属性之间迭代,或者只是一个功能来检查是否所有类成员都已初始化

可选类型的属性会自动初始化为值nil,这表示该属性有意在初始化期间“还没有值”。因此,只需检查可选属性是否为nil,就可以知道它是否已设置。

可选类型的属性会自动初始化为nil值,这表明该属性有意在初始化过程中“还没有值”。所以只需检查可选属性是否为nil,就可以知道它是否已设置。

您可以定义一个存储属性

var allPropertiesAreInitialised: Bool{
      get {
          return val1 =! nil && val2 =! nil //etc ...
      }
}

您可以定义存储属性

var allPropertiesAreInitialised: Bool{
      get {
          return val1 =! nil && val2 =! nil //etc ...
      }
}
你不能那样做

问题甚至在于获取所有属性的列表,因为Swift没有反射

但是,如果您可以使对象继承自
NSObject
,那么您可以使用Obj-C运行时来实现这一点(尽管有一些限制)。

您无法做到这一点

问题甚至在于获取所有属性的列表,因为Swift没有反射


但是,如果您可以使对象继承自
NSObject
,则可以使用Obj-C运行时来执行此操作(但有一些限制)。

何时检查它们是否都已设置?首先,您需要获取这些属性的列表。Swift没有反射,因此如果不显式地命名属性,您就不能这样做。您能告诉我们为什么需要这个吗?可能有更好的解决方案。您想什么时候检查它们是否都设置好了?首先,您需要获得这些属性的列表。Swift没有反射,因此如果不显式地命名属性,您就不能这样做。您能告诉我们为什么需要这个吗?可能有更好的解决方案。不好,此解决方案不可扩展。非常好,考虑到检查所有属性都是非零的而实际上不知道所有属性是毫无意义的。您假设一个类或结构永远无法获取真正可为null的属性。不好,此解决方案不可伸缩。非常好,考虑到检查所有属性是否为非nil而不实际了解所有属性是毫无意义的。你假设一个类或结构永远不会获得一个真正的可空属性。我相信作者知道optionals是如何工作的。相反,他是在问,即使有很多选项,他如何能一次轻松地检查一个班级中的所有选项。是的,请逐个检查零,请参见上文。我相信作者知道选项是如何工作的。相反,他是在问,即使有很多选项,他如何能一次轻松地检查一个班级中的所有选项。是的,只需逐个检查零,请参见上文