1.初始化顺序 子类的属性必须要在父类的初始化方法调用之前初始化
class ClassA {
let name: String
init(name: String) {
self.name = name
}
}
class ClassB: ClassA {
let age: Int
init(name: String, age: Int) {
super.init(name: name)
self.age = age
}
}
2.数组可以在forin循环进行删除而不崩溃
// 定义一个Array的数组
var numbers: Array = [1, 2, 3, 4, 5]
for _ in numbers {
numbers.removeLast()
}
// Swift中的forin循环(array, set, or any other collection or sequence)是在它的迭代器进行循环的
var numbers: Array = [1, 2, 3, 4, 5]
var numbersIterator = numbers.makeIterator()
while let num = numbersIterator.next() {
numbers.removeLast()//此处删除numbers的时候,numbersIterator并不会受到影响。
}
3.struct VS class
1、property初始化的不同
let snode = SNode(Data: 4) // struct可直接在构造函数中初始化property
pri