Swift - 类级别实例化和方法级别实例化之间的区别

标签 swift instance-variables

以下用法有什么区别?有区别吗?

class B { }

// usage 1
class A {
    var b: B = B();
}

// usage 2
class A {
   var b: B!

   init() {
      self.b = B()
   }
}

编辑: 一些答案指出,在用法 2 中,该值不需要是可选的,因为它在初始化程序中获得了一个值。

最佳答案

实例化是按照赋值语句的声明顺序完成的。但是类级语句(存储的属性)在方法级语句之前完成:

// in this example, the order will be C, D, B, A
class MyClass {
    init() {
        b = B()
        a = A()
    }

    var a: A
    var b: B
    var c: C = C()
    var d: D = D()
}

关于Swift - 类级别实例化和方法级别实例化之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41252996/

相关文章:

swift - 使用 swift、sum 和 Difference 进行小时运算

ios - Cosmic Mind - 实现 TabsController 时如何调整 View 大小

python - 动态更改代表类对象的实例变量 - Python

java - 所有实例变量都声明在函数外吗?

ios - 将 protected Objective-C 实例变量公开给子类

java - 我需要在不使用实例变量的情况下重构这个类

ios - 将prepareForSegue添加到UIAlertAction中

ios - 在同一 View Controller 中的另一个 UIView 后面进行 UIView 更新

swift - 如何指定相对于 ARImageAnchor 的子节点位置?

objective-c - self.var 和简单 var 的区别