Index
A
- actions
- recognizing, to create methods / Recognizing actions to create methods
- API objects
- working with, in Xcode Playground / Working with API objects in the Xcode Playground
- array filtering
- functional version, creating / Creating a functional version of array filtering
- arrays
- filtering, with complex conditions / Filtering arrays with complex conditions
- associated types
- declaring, in protocols / Declaring associated types in protocols
- inheriting, in protocols / Inheriting and adding associated types in protocols
- adding, in protocols / Inheriting and adding associated types in protocols
- attributes / Recognizing variables and constants to create properties
- automatic reference counting
B
- base types
- extending, to conform custom protocols / Extending base types to conform to custom protocols
C
- class
- declaring, that works with constrained generic type / Declaring a class that works with a constrained generic type
- declaring, that works with two constrained generic types / Declaring a class that works with two constrained generic types
- classes
- generating, to create objects / Generating classes to create objects
- organizing, UML diagrams used / Organizing classes with UML diagrams
- about / Understanding structures, classes, and instances
- declaring / Declaring classes
- instances, creating / Creating the instances of classes
- declaring, that inherit from another class / Declaring classes that inherit from another class
- downcasting with / Downcasting with protocols and classes
- existing classes, generalizing with generics / Generalizing existing classes with generics
- class hierarchies
- creating, to abstract and specalize behavior / Creating class hierarchies to abstract and specialize behavior
- class inheritance
- combining, with protocol inheritance / Combining class inheritance with protocol inheritance
- computed properties
- generating, with setters / Generating computed properties with setters and getters
- generating, with getters / Generating computed properties with setters and getters
- adding to base type, with extensions / Adding computed properties to a base type with extensions
- constants
- recognizing, to create properties / Recognizing variables and constants to create properties
- constrained generic type
- class, declaring / Declaring a class that works with a constrained generic type
D
- data repository
- creating, with generics / Creating a data repository with generics and protocols
- creating, with protocols / Creating a data repository with generics and protocols
- deinitialization
- and customization / Understanding deinitialization and its customization
- customizing / Customizing deinitialization
- deinitializer
E
- equivalent closures
- writing, with simplified code / Writing equivalent closures with simplified code
- extensions
- used, for adding methods / Adding methods with extensions
- computed properties, adding to base type / Adding computed properties to a base type with extensions
- new convenience initializers, declaring / Declaring new convenience initializers with extensions
- used, for defining subscripts / Defining subscripts with extensions
F
- fields / Recognizing variables and constants to create properties
- filter
- chaining / Chaining filter, map, and reduce
- functions
- as first-class citizens / Understanding functions as first-class citizens
- function types
- working, within classes / Working with function types within classes
G
- generic class
- using, for multiple types / Using a generic class for multiple types
- using, with two generic type parameters / Using a generic class with two generic type parameters
- getters
- about / Understanding the elements that compose a class
- used, for generating computed properties / Generating computed properties with setters and getters
- combining / Combining setters, getters, and a related property
- used, for transforming values / Transforming values with setters and getters
I
- IDE (Integrated Development Environment) / Installing the required software
- immutable classes
- building / Building immutable classes
- inheritance
- about / Understanding inheritance
- and protocols, combining / Combining inheritance and protocols
- initialization
- and customization / Understanding initialization and its customization
- customizing / Customizing initialization
- initializer requirements
- combining in protocols, with generic types / Combining initializer requirements in protocols with generic types
- initializers
- about / Understanding the elements that compose a class
- new convenience, declaring with extensions / Declaring new convenience initializers with extensions
- instance methods
- instance properties
- instances
M
- map
- used, for transforming values / Using map to transform values
- combining, reduce used / Combining map with reduce
- chaining / Chaining filter, map, and reduce
- methods / Recognizing actions to create methods
- overriding / Overriding and overloading methods
- overloading / Overriding and overloading methods
- that receive protocols, as arguments / Working with methods that receive protocols as arguments
- downcasting with / Downcasting with protocols and classes
- requirements, specifying / Specifying requirements for methods
- adding, with extensions / Adding methods with extensions
- mutable classes
- creating / Creating mutable classes
N
- nested types
O
- object-oriented code
- in apps, working with / Working with object-oriented code in apps
- object-oriented data repository
- adding, to project / Adding an object-oriented data repository to a project
- interacting with, Picker View used / Interacting with an object-oriented data repository through Picker View
- object-oriented programming
- using, by refactoring code / Refactoring code to take advantage of object-oriented programming
- object-oriented puzzle
- pieces, gathering / Putting together all the pieces of the object-oriented puzzle
- objects
- capturing, from real world / Capturing objects from the real world
- operator functions
- declaring, for specific subclasses / Declaring operator functions for specific subclasses
- operator overloading
P
- parametric polymorphism
- and generic code / Understanding parametric polymorphism and generic code
- Picker View
- used, for interacting with object-oriented data repository / Interacting with an object-oriented data repository through Picker View
- polymorphism
- properties / Recognizing variables and constants to create properties
- overriding / Overriding properties
- requirements, specifying / Specifying requirements for properties
- property observers
- about / Understanding property observers
- protocol inheritance
- combining, with class inheritance / Combining class inheritance with protocol inheritance
- protocols
- working, in combination with classes / Understanding how protocols work in combination with classes
- declaring / Declaring protocols
- classes, declaring / Declaring classes that adopt protocols
- multiple inheritance, advantage taking / Taking advantage of the multiple inheritance of protocols
- and inheritance, combining / Combining inheritance and protocols
- instances, treating as different subclass / Treating instances of a protocol type as a different subclass
- declaring, to be used as constraint / Declaring a protocol to be used as a constraint
- class, declaring that conforms to multiple protocols / Declaring a class that conforms to multiple protocols
- class, declaring / Declaring a class that conforms to multiple protocols
- conformance inheriting, subclasses declaring for / Declaring subclasses that inherit the conformance to protocols
- initializer requirements, combining with generic types / Combining initializer requirements in protocols with generic types
- associated types, inheriting / Inheriting and adding associated types in protocols
- associated types, adding / Inheriting and adding associated types in protocols
- custom protocols conforming to, by extending base types / Extending base types to conform to custom protocols
R
- reduce
- used, for combining reduce / Combining map with reduce
- chaining / Chaining filter, map, and reduce
- used, for solving algorithms / Solving algorithms with reduce
S
- setters
- about / Understanding the elements that compose a class
- used, for generating computed properties / Generating computed properties with setters and getters
- combining / Combining setters, getters, and a related property
- used, for transforming values / Transforming values with setters and getters
- shortcuts
- creating, with subscripts / Creating shortcuts with subscripts
- stored properties
- declaring / Declaring stored properties
- structures
- subclass / Understanding inheritance
- subclasses
- members overriding, controlling / Controlling whether subclasses can or cannot override members
- declaring, that inherit conformance to protocols / Declaring subclasses that inherit the conformance to protocols
- subscripts
- about / Understanding the elements that compose a class
- used, for creating shortcuts / Creating shortcuts with subscripts
- defining, extensions used / Defining subscripts with extensions
T
- typecasting
- working with / Working with typecasting and polymorphism
- type methods
- type properties
- about / Understanding the elements that compose a class
- used, for creating values / Using type properties to create values shared by all the instances of a class
U
- UIs (User Interfaces) / Capturing objects from the real world
- UML (Unified Modeling Language) / Recognizing variables and constants to create properties
- UML diagrams
- used, for organizing classes / Organizing classes with UML diagrams
- UXs (User eXperiences) / Capturing objects from the real world
V
- values
- transforming, with setters / Transforming values with setters and getters
- transforming, with getters / Transforming values with setters and getters
- variables
- recognizing, to create properties / Recognizing variables and constants to create properties
X
- Xcode Playground / Installing the required software