-
Book Overview & Buying
-
Table Of Contents
Learning Swift Second Edition - Second Edition
By :
It is a great idea to always keep strong reference cycles in mind, but if we are too aggressive with the use of weak and unowned references, we can run into the opposite problem, where an object is deleted before we intended it to be.
With an object this will happen if all of the references to the object are weak or unowned. This won't be a fatal mistake if we use weak references, but if this happens with an unowned reference it will crash your program.
For example, let's look at the preceding example with an extra weak reference:
class SteeringWheel {
weak var car: Car?
}
class Car {
weak var steeringWheel: SteeringWheel!
init(steeringWheel: SteeringWheel) {
self.steeringWheel = steeringWheel
steeringWheel.car = self
}
}
let wheel = SteeringWheel()
let car = Car(steeringWheel: wheel)This code is the same as the preceding one except that both the car property of SteeringWheel and the steeringWheel property of Car are weak. This means...
Change the font size
Change margin width
Change background colour