December 2018
Intermediate to advanced
414 pages
10h 19m
English
You can use unowned references when you can guarantee that the owner of another object will never exist when the reference is deallocated. Let's look at the following example:
class CreditCard { let number: String let expiry: String unowned let owner: Person init(owner: Person) { self.owner = owner self.number = "XXXXXXXXXXXXXXXX" self.expiry = "XX/YY" }}class Person { let name: String var cards: [CreditCard] = [] init(name: String) { self.name = name }}
In this example, one person can have many credit cards. Each card needs to have an owner, which is immutable.
Let's look that how to use such an API:
let me = Person(name: "John Smith")let card = CreditCard(owner: me)let otherCard = CreditCard(owner: me)me.cards = [card, ...
Read now
Unlock full access