The previous chapter looked at the basic building blocks of programming in Swift. In this chapter, we’re going to look at some of the more advanced features of Swift, such as memory management, working with files and external data, and error handling. We’ll also touch on interoperating with Apple’s older programming language, Objective-C.
Swift’s features allow it to be used as an object-oriented programming language. This means that you do the majority of your work by creating and manipulating objects—chunks of data and code that represent a thing that can perform some useful work or store some useful data.
In Swift, as with Objective-C, Java, and C++ (and many other languages), you define templates for your objects using classes. Classes in Swift look like this:
Classes contain both properties and methods. Properties are variables that are part of a class, and methods are functions that are part of a class.
Vehicle class in the following example contains two properties: an optional
color, and an
maxSpeed. Property declarations look the same as variable declarations do in other code:
Methods in a class look the same as functions anywhere else. Code that’s in a method can access the properties of a class by using the
self keyword, which refers to the object that’s currently running the code: