Lazy loading
The lazy loading pattern allows you to delay the creation of an object until you try to use it. This pattern can be implemented in any programming language. In Objective-C, we have used the property's getters and checked whether it was initialized. Swift adds support for lazy loading into the language, and this makes it even easier to apply this pattern. There are many things that can be lazy loaded, and we will cover them in this chapter.
Global constants and variables
Global variables and constants are always loaded lazily in Swift. This means that every global variable is initialized only when you access it for the first time. As a test, let's create a new Person.swift
file and add this code to it:
struct Person { let name: String let age: Int init(name: String, age: Int) { self.name = name self.age = age print("\(name) Created") } } let Jon = Person(name: "Jon", age: 20) let Sam = Person(name: "Sam", age: 28)
This file contains two global constants: Jon...