A B C D E F G H I J-K L M N O P Q R S T U V W X-Y-Z

Symbols and Numbers

[top]

* (asterisks), 331

{} (curly braces), 101

! (exclamation points), removing, 357

=== (identical to operator), 149

!== (not identical to operator), 149

1>, 8

_ (underscore), 358

A

[top]

access control, type access control, 230-231

accessing

super from subclasses, 163

type properties from instance properties, 224

values, indexes and subscripts, 41

actions, 352

adding

constraints to interfaces, 367-369

data to dictionaries, 48-49

elements to arrays, 42-43

elements to interfaces, 355-356

populating data, 356-363

instance methods

to enums, 180-182

to structs, 142-143

iTunes Search to Songs app, 380-383

labels to interfaces, 364-367

methods to protocols, 266

optional members, to protocols, 274

parameters to protocol methods, 267

type constraints, 316

adopting protocols, 264-265, 269-273

extensions, 295-296

aliased types, extending, 288

align attribute, 150

allObjects computed property, 325

allocation, Objective-C, 333-335

alternatives, to operation queues, 388

AND operator, 33-34

AnyObject, 238

ARC (Automatic Reference Counting), 247-248

reference behaviors, 248

reference cycles, 248-255

closures, 256

unowned references, 254-255

weak references, 252-253

reference relationships, 248

argument validation, 105

arithmetic operators, 29

Array, 396

Objective-C, 336-337

ArrayLiteralConvertible, 395

arrays, 39-41

accessing values, 41

adding elements, 42-43

data, creating/accessing, 41-42

declaring, 39-40

enumerated arrays, for-in loops, 93

inserting elements, 43

items

removing, 44

updating/replacing, 44

for-in loops, 90-91

for loops, 87

manipulating, 42

methods, 39-46

performing functions on each member, 123

properties, 39-46

slicing, 397

as?, 275

as operator, 275

assigning

constants, 14-15

variables, 14-15

assignment operator, 30

assignments, value types, 139

Assistant Editor, 6

associated types, in protocols, 20-21

associated values

bindings, 178-179

enums, 177

named parameters, 177

asterisks (*), 331

asynchronous execution paths, 379

asynchronous programming

concurrency, 376-380

operation queues, 379

asynchronous results, observing, 377

attributes, align attribute, 150

Attributes Inspector, 356-357

auto-complete feature, Xcode, 125

Automatic Reference Counting. See ARC (Automatic Reference Counting)

B

[top]

base classes

inheritance, 156-157

overriding instance methods, 160-161

behaviors

protocols, 277

references, ARC (Automatic Reference Counting), 248

binary operators, 29

assignment operator, 30

comparison operators, 31

compound assignment operators, 30-31

logical operators, 33

range operators, 32-33

remainder operator, 29-30

standard arithmetic operators, 29

bindings, associated values, 178-179

blue text bubble, 383

Bool, 16, 19-20

boolean values, 394

BooleanLiteralConvertible, 395

break keyword, 71

break statement

transferring control, 94-95

transferring control of execution, switch statement, 76-77

bridging Objective-C, 335

module bridging, 335

type bridging, 335-337

C

[top]

C, for loops, 86-87

cache expiry, 388

caches, 388

call instance methods, optional chaining, 309-310

calling

functions, 100

instance methods, from instance methods, 144

casting, 19

cells, reusing, 357

Character, 21

CharacterLiteralConvertible, 395

checking, for protocol conformance, 275

choosing, queues, 376

class identity, 166-167

class inheritance, 155, 270-272

class instances

comparing, 149-150

copying, 147

class keyword, 267

class types, initializing, 193

classes, 137-139

comparing to structs, 139-140

defining properties, 140-141

differences, 147-150

instance methods, 141-145

similarities, 145

creating with dependent properties, 249-250

deciding when to use, 150-151

defining with properties and methods, 145-146

initialization delegation, 195-196

sizes, 367

closure capture lists, 256

resolving reference cycles in closures, 256-258

unowned references, 258

closure expressions

parameters, 127

return statements, 127

shorthand argument names, 128

structure, 125-129

syntax, 125

type inference, 127

closures, 124

lazy stored properties, 208

reference cycles, 256

trailing closures, 128

Cocoa, 238

concurrency, 374

dispatch queues, 375

operation queues, 375

type bridging, 335-336

Cocoa Touch, 238

combining

logical operators, 35

strings, 8

Comparable, 398-399

comparing

class instances, 149-150

classes and structs, 139-140

defining properties, 140-141

differences, 147-150

instance methods, 141-145

similarities, 145

equality, 150

strings, 395

values, do-while loops, 84-85

comparison operators, 31

compiler errors, 186

completionHandler argument, 383

compound assignment operators, 30-31

computed instance, extensions, 287-289

computed properties, 209, 212

concurrency, 373-374

adding iTunes Search, 380-383

asynchronous programming, 376-380

dispatch queues, 374-375

JSON (JavaScript Object Notation), 383-390

operation queues, 375

queues, choosing, 376

conditional statements, comparison operators, 31

conditions, 65

if statement, 65-68

switch statement. See switch statement

ternary conditional operators, 69-70

while loops, 82

conformance

checking for protocol conformance, 275

protocols, extensions, 295-296

constants, 13-14

assigning, 14-15

constraints, 352

interfaces, adding, 367-369

continue statement, transferring control in loops, 93-94

control

transferring in loops

with break statement, 94-95

with continue statement, 93-94

transferring with return, 107

convenience initializers, 195

convertible protocols, 395-396

converting between integers and floating-point numbers, 19

copying

struct and class instances, 147

value types, 148

Core Data, 286

countElements, 21

CPUs (single-core processors), 373-374

custom initializers

enums, 189-190

extensions, 292-293

structs, 189

custom values, initializers, 190-191

D

[top]

data

adding to dictionaries, 48-49

arrays, creating/accessing, 41-42

populating, adding elements to interfaces, 356-363

data types, 15-17

Bool, 19-20

Character, 21

Double, 18-19

finding properties and methods on, 20-21

Int, 17

String, 20-22

type inference, 16

values, initializing, 22-23

deallocation, 243

declaring

arrays, 39-40

stored properties, 206

variables, 15

decrement operators, 28

default parameter values, functions, 112

default values

initializers, 190-191

initializing value types, 188-192

deinit, 244

deinitialization, 243-247

delegates, 304

delegation

initialization. See initialization delegation

protocols, 275-280

Dependency Inversion Principle, 276

dependent properties, classes, creating, 249-250

description() method, 167

designated initializers, 195

designating variables as optional, 54

dictionaries, 46

data, adding, 48-49

initializing, 47-48

key-value pairs, 46-47

for-in loops, 91-92

methods, 50

properties, 50

removing items, 50

type inference, 48

Dictionary, Objective-C, 337

DictionaryLiteralConvertible, 395

dispatch queues, 374-375

dispatch_sync function, 378

dispatched closures, nesting, 378

dispatching

network calls, 387

tasks, 377

Double, 16, 18-19, 235, 394

do-while loops, 83-84

comparing values, 84-85

random number generators, 85-86

downcasting, 237-238

downloading

starter project, integrating Swift into Objective-C app, 337-339

Xcode, 2

E

[top]

elements, 352

adding to arrays, 42-43

inserting in arrays, 43

interfaces, adding. See interfaces, adding elements

else, 66-67

else if, 67

enumerated arrays, for-in loops, 93

enums, 171-172

associated values, 177

custom initializers, 189-190

initializing, 193

instance methods, adding, 180-182

raw values, 173-174

setting enum values, 174-175

shorthand syntax, 175-176

structure, 172-173

switching values, 178-179

equality, comparing, 150

Equatable protocol, 316, 398-399

ExtendedGraphemeClusterLiteralConvertible, 396

extending

aliased types, 288

generic types, 322-323

extensions

defining, 285-286

functionality, 287

computed instance, 287-289

custom initializers, 292-293

instance methods, 289-290

nested types, 294-295

protocol adoption and conformance, 295-296

subscripts, 290-291

type methods, 289-290

type properties, 287-289

structure, 286

external parameter names, 111-112

initializers, 192-193

F

[top]

failable initializers, 333

fallthrough statement, transferring control of execution, switch statement, 77

fetchData() method, 383

file structure, Objective-C, 330

header files, 330-332

implementation files, 332-333

filter(), 401

first-class type, 172

Float, 16, 19

floating point, 394

FloatLiteralConvertible, 396

for loops, 86

arrays, 87

for-condition-increment loops, 86-87

for-in loops, 88

arrays, 90-91

dictionaries, 91-92

enumerated arrays, 93

iterating through different data types, 88-90

ranges, 89

strings, 89-90

tuples, 92-93

forced unwrapping with unwrap operator, optional variables, 55-56

for-condition-increment loops, 86-87

for-in loops, 88

arrays, 90-91

dictionaries, 91-92

enumerated arrays, 93

items, 88

iterating through different data types, 88-90

ranges, 89

strings, 89-90

tuples, 92-93

fromRaw(T), 175

func keyword, 100

funcName, 101

function parameters, using functions as, 122-124

functionality, extensions, 287

computed instance, 287-289

custom initializers, 292-293

instance methods, 289-290

nested types, 294-295

protocol adoption and conformance, 295-296

subscripts, 290-291

type methods, 289-290

type properties, 287-289

functions, 100, 129-131

argument validation, 105

calling, 100

creating to return mean, median, mode, 108-109

default parameter values, 112

filter(), 401

higher order functions, 117-118

returning function types, 118-120

map(), 400

median function, rewriting, 129-131

nesting functions within functions, 120-122

no parameters and no return types, 102

in-out parameters, 112-113

with parameters, 103-105

parameters, external parameter names, 111-112

performing, on each member of arrays, 123

reduce(), 400-401

reduce function, 126-127

return types, 106-110

return values, ignoring, 110

scopes, 104

standard library functions. See standard library functions

structure, 101

syntax, 100-101

times, 104

types, 102-103

variadic parameters, 105-106

G

[top]

GCD, 376

tasks, dispatching, 378

generic stack types, implementing, 319

generic types

creating, 319-322

extending, 322-323

generics, 313-314

associated types, in protocols, 20-21

creating generic functions to return unique arrays, 317-318

creating generic types, 319-322

extending, generic types, 322-323

placeholder types, 314-315

type constraints, specifying, 315-319

type parameters, 314-315

get keyword, 210

getters, property accessors, 209-210

global functions, 401-402

sort(), 403-404

sorted(), 403-404

split(), 402

startsWith(), 402

stride(), 403

H

[top]

Hashable protocols, 318

header files, Objective-C, 330-332

hiding, parameter names, in initializers, 192

higher order functions, 117-118

functions as function parameters, 122-124

nesting functions within functions, 120-122

returning function types, 118-120

I

[top]

identical to operator, 149

if statement, 65-68

if-else statement, 66

ignoring, return values, 110

implementation files, Objective-C, 332-333

implementing initialization chaining, 197-199

implicitly unwrapped optionals, optional variables, 57

increment operators, 28

indexes, accessing, values, 41

infinite loops, while loops, 83

inheritance, 155-156

base classes, 156-157

class identity, 166-167

overrides, preventing, 164-166

overriding inherited methods, 159-162

subclasses, creating, 157-159

super, 162-164

inherited initializers, 196

inheriting

property accessors, 215-218

property observers, 218-220

protocols, 269-273

init(), 186

initialization, 185

Objective-C, 333-335

order of, Objective-C, 333

initialization chaining, 197-199

initialization delegation, 193-194

classes, 195-196

structures, 194-195

initialization process, 196-197, 200-201

initializer chaining, 196

initializers, 187

convenience initializers, 195

designated initializers, 195

failable initializers, 333

goal of, 186-187

inherited initializers, 196

Objective-C, 331

setting default and custom values, 190-191

initializing

class types, 193

dictionaries, 47-48

enums, 193

properties, in structs, 141

value types, 187

external parameter names, 192-193

setting default values, 188-192

values, data types, 22-23

inout keyword, 113

in-out parameters, functions, 112-113

inserting, elements, in arrays, 43

instance methods, 141-145

adding

to enums, 180-182

to structs, 142-143

calling from instance methods, 144

extensions, 289-290

instance variables, 206-207

instances, determining an instance’s type, 235-237

Instrument, 237

Int, 16-18, 286, 394

finding ranges, 17-18

IntegerLiteralConvertible, 396

integers, 394

integrating Swift into Objective-C app, 337

creating classes and bridging headers, 339-343

downloading starter project, 337-339

exposing Objective-C classes to Swift, 343

extending Objective-C classes with Swift, 343-344

running apps, 345

updating classes in storyboard, 344-345

interfaces

actions, 352

adding elements, 355-356

populating data, 356-363

adding labels, 364-367

adding UI constraints, 367-369

building, 353-354

constraints, 352

elements, 352

outlets, 352

projects, creating, 355

scenes, 352

segue, 352, 363

preparing for, 366

view controllers, 352

internal access, 230

iOS, playgrounds, 6

is operator, 275

items

for-in loops, 88

removing

from arrays, 44

from dictionaries, 50

updating/replacing, in arrays, 44

iterating

through arrays, for-in loops, 90-91

through dictionaries, for-in loops, 91-92

through different data types, for-in loops, 88-90

iTunes Search, adding to Songs app, 380-383

J-K

[top]

JSON (JavaScript Object Notation), 238

parsing, 383-390

key-value pairs, dictionaries, 46-47

keywords

break, 71

class, 267

deinit, 244

func, 100

get, 210

initializing, 186

inout, 113

lazy, 207

mutating, 267

required, 267

self, 143

static, 267

strong, 331

super, 162-164

typealias, 229

where, 75-76

L

[top]

labels, adding to interfaces, 364-367

lazy keyword, 207

lazy stored properties, 207-208

closures, 208

let, 40

libraries, standard library, 393-394

local access, caches, 388

logical AND operator, 33-34

logical NOT operator, 28, 35

logical operators, 33

AND operator, 33-34

combining, 35

NOT operator, 35

OR operator, 34

logical OR operator, 34

loops

for loops, 86

transferring control

with break statement, 94-95

with continue statement, 93-94

while loops. See while loops

M

[top]

Mac, playgrounds, 6

manipulating, arrays, 42

map(), 400

mapEachElement, 124

matching values, switch statement, 71-72

mean function, 125

median function, rewriting, 129-131

memberwise initialization, structs, 188-189

methods

adding to protocols, 266

arrays, 39-46

classes, 145-146

defining in protocols, 266-267

dictionaries, 50

fetchData() method, 383

naming, 358

optional chaining, 308-310

parseJson() method, 385

protocols, 273-274

Microsoft SharePoint Server, optional chaining, 304

MKAnnotation protocol, 273

module bridging, Objective-C, 335

modulo operator, 29-30

multiple protocol inheritance, 270-272

MutableCollectionType, 397

mutating, struct properties, 148-149

mutating functions, 267

mutating keyword, 267

N

[top]

named parameters, associated values, 177

naming methods, 358

naming conventions, protocols, 396

nested functions, 121-122

values versus references, 121

nested method calls, Objective-C, 334

nested types, extensions, 294-295

nesting, dispatched closures, 378

nesting functions, within functions, 120-122

network calls, dispatching, 387

nil, 53-54, 244

nil coalescing operator, 58

NilLiteralConvertible, 396

non-specific types, type casting, 238

not identical to operator (!==), 149

NOT operator, 35

NSArray, Objective-C, 336-337

NSDictionary, Objective-C, 337

NSNumber, Objective-C, 336

NSOperations, 379-380

NSString, 385-386

Objective-C, 336

NSURLSession, downloading data, 382

numeric types, 394

Objective-C, 336

O

[top]

Objective-C, 329

allocation, 333-335

bridging, 335

module bridging, 335

type bridging, 335-337

file structure, 330

header files, 330-332

implementation files, 332-333

if statement, 66

initialization, 333-335

initializers, 331

nested method calls, 334

order of initialization, 333

versus Swift, 22

synthesizing, 331

Objective-C app, integrating Swift into, 337

creating classes and bridging headers, 339-343

downloading starter project, 337-339

exposing Objective-C classes to Swift, 343

extending Objective-C classes with Swift, 343-344

running apps, 345

updating classes in storyboard, 344-345

Objective-C classes, exposing to Swift, 343

Objective-C properties, 206

observing

asynchronous results, 377

serial results, 377

Open/Closed Principle, 286

operation queues, 375

alternatives, 388

asynchronous programming, 379

operators, 27

binary operators, 29

assignment operator, 30

comparison operators, 31

compound assignment operators, 30-31

logical operators, 33

modulo operator, 29-30

range operators, 32-33

remainder operator, 29-30

standard arithmetic operators, 29

nil coalescing operator, 58

ternary conditional operators, 35

unary operators, 27

increment and decrement operators, 28

logical NOT operator, 28

unary minus operator, 29

optional chaining

call instance methods, 309-310

defining, 301-302

methods, 308-310

properties, 302-303

subscripts, 303-308

optional values, 53-54

implicitly unwrapped optionals, 57

use cases, 58-61

variables

forced unwrapping with unwrap operator, 55-56

nil coalescing operator, 58

optional binding to unwrap, 56

wrapping/unwrapping, 54-55

optional variables

forced unwrapping with unwrap operator, 55-56

implicitly unwrapped optionals, 57

unwrapping, 54-55

wrapping, 54-55

optionals, 23

OR operator, 34

order of initialization, Objective-C, 333

outlets, 352

overloading

operators and protocols, 398-399

subscripts, 234-235

overrides

preventing, 164-166

property accessors, 215-218

overriding

inherited methods, 159-162

instance methods, 160-161

property observers, 217-220

subscripts, 235

P

[top]

parameters

adding to protocol methods, 267

closure expressions, 127

functions, 103-105

default parameter values, 112

external parameter names, 111-112

as function parameters, 122-124

in-out parameters, 112-113

variadic parameters, 105-106

named parameters, associated values, 177

names, hiding, in initializers, 192

parentheses, 70

parseJson() method, 385

parsing, JSON (JavaScript Object Notation), 383-390

performing, functions on each member of arrays, 123

performMathAverage, 120

placeholder types, generics, 314-315

playgrounds

Mac, 6

Xcode, 6-7

Point struct

creating instances of, 141

creating to return mean, median, mode, 140

populating data, adding elements to interfaces, 356-363

prepareForSegue, updating, 389

preventing, overrides, 164-166

Printable protocol, 325

private access, 230

projects, interfaces, creating, 355

properties, 205

arrays, 39-46

classes, 145-146

computed properties, 209, 212

defining, 140-141

dictionaries, 50

initializing in structs, 141

optional chaining, 302-303

property accessors, 209

getters, 209-210

inheriting/overriding, 215-218

setters, 210

property observers, 212-214

inheriting/overriding, 218-220

protocols, 265-266, 273-274

stored properties, 206

instance variables, 206-207

lazy stored properties, 207-208

structs, mutating, 148-149

type properties, 223-225, 266

property accessors, 209

getters, 209-210

inheriting, 215-218

overriding, 215-218

setters, 210

property observers, 212-214

inheriting, 218-220

overriding, 218-220

protocol names as types, 268-269

protocol<>, 395

protocols, 395-397

adding optional members, 274

adopting extensions, 295-296

adopting and inheriting, 269-273

associated types, 20-21

behaviors, 277

checking for conformance, 275

Comparable, 398-399

conformance, extensions, 295-296

convertible protocols, 395-396

creating and adopting, 264-265

defining properties, 263-264

delegation, 275-280

Equatable protocol, 398-399

methods, 273-274

adding, 266

defining, 266-267

MutableCollectionType, 397

naming conventions, 396

overloading operators and, 398-399

Printable, 325

properties, 265-266, 273-274

protocol names as types, 268-269

Sliceable, 397

providing table view data source methods, 358-359

public access, 230

Q

[top]

queues

choosing, 376

dispatch queues, 374-375

operation queues, 375

versus threads, 375

R

[top]

random number generators, 85-86

range matching, switch statement, 72-73

range operators, 32-33

ranges, for-in loops, 89

raw values, enums, 173-174

setting enum values, 174-175

Read-Eval-Print-Loop (REPL), 7-9

reduce(), 400-401

reduce function, 126-127

reference behaviors, ARC (Automatic Reference Counting), 248

reference cycles

ARC (Automatic Reference Counting), 248-255

unowned references, 254-255

weak references, 252-253

closures, 256

creating, 250

resolving in closures, with closure capture lists, 256-258

reference relationships, ARC (Automatic Reference Counting), 248

reference types, 138

references, versus values in nested functions, 121

refining switch cases with where keyword, 75-76

remainder operator, 29-30

removing

! (exclamation points), 357

items

from arrays, 44

from dictionaries, 50

repeating code, 235

REPL (Read-Eval-Print-Loop), 7-9, 249

replacing items, in arrays, 44

required keyword, 267

resolving reference cycles in closures, closure capture lists, 256-258

return, transferring control, 107

return someValue, 101

return statements, closure expressions, 127

return types, functions, 106-110

return values, ignoring, 110

returning function types, higher order functions, 118-120

ReturnType, 101

reusing cells, 357

rewriting median function, 129-131

S

[top]

scenes, 352

scopes, functions, 104

segue, 352, 363

preparing for, 366

self, 143, 189

serial results, observing, 377

setters

property accessors, 210

providing custom setters for Square structs, 210-211

SharePoint Object Model, 304

shorthand argument names, closure expressions, 128

shorthand syntax, enums, 175-176

size classes, 367

Slice, 396

Sliceable, 397

slicing arrays, 397

Song struct, 362

SongDetailViewController class, 362

sort(), 403-404

sorted(), 403-404

specifying type constraints, 315-319

split(), 402

Square struct, providing custom setters, 210-211

Stack, 320

standard arithmetic operators, 29

standard library, 393-394

standard library functions, 394

filter(), 401

global functions, 401-402

sort(), 403-404

sorted(), 403-404

split(), 402

startsWith(), 402

stride(), 403

map(), 400

numeric types, 394

protocols, 395-397

overloading operators and, 398-399

reduce(), 400-401

Slice, 396

string type, 394

string comparison, 395

startsWith(), 402

static keyword, 267

stored properties, 206

instance variables, 206-207

lazy stored properties, 207-208

stride(), 403

String, 16, 20-22

Objective-C, 336

string comparison, 395

string type, 394

string comparison, 395

StringLiteralConvertible, 396

strings

combining, 8

for-in loops, 89-90

strong keyword, 331

struct instances, copying, 147

structs

adding instance methods, 142-143

comparing to classes, 139-140

differences, 147-150

instance methods, 141-145

similarities, 145

custom initializers, 189

deciding when to use, 150-151

initializing properties, 141

memberwise initialization, 188-189

overview, 137-139

properties, mutating, 148-149

type properties, 224

structures

closure expressions, 125-129

comparing to classes, defining properties, 140-141

enums, 172-173

extensions, 286

functions, 101

initialization delegation, 194-195

subclasses

creating, 157-159

overriding instance methods, 160-161

subscripts, 156, 231-234

accessing values, 41

creating, 231

extensions, 290-291

optional chaining, 303-308

overloading, 234-235

overriding, 235

super, 162-164

superclass method, preventing overrides, 164-165

superclasses, 157

Swift, 2

versus Objective-C, 22

Swift REPL, 102

switch cases, where keyword, 75-76

switch statement, 70-71

matching values, 71-72

range matching, 72-73

refining switch cases with where keyword, 75-76

transferring control of execution, 76

break statement, 76-77

fallthrough statement, 77

tuple matching, 74-75

switching enum values, 178-179

syntax

closure expressions, 125

do-while loops, 83

functions, 100-101

for loops, 86-87

while loops, 82

synthesizing, Objective-C, 331

T

[top]

table view controller, 357

table view data source methods, providing, 358-359

table views, 275

tableView, 386

tasks, dispatching, 377

ternary conditional operators, 35, 69-70

threads, versus queues, 375

times, functions, 104

title property, 265

trailing closures, 128

transferring

control, with return, 107

control in loops

with break statement, 94-95

with continue statement, 93-94

control of switch statements, 76

break statement, 76-77

fallthrough statement, 77

transitions, 352

tuple matching, switch statement, 74-75

tuples, 50-51

for-in loops, 92-93

type access control, 230-231

type aliasing, 229

type bridging, Objective-C, 335-337

type casting, 235-237

downcasting, 237-238

non-specific types, 238

type check operator, 235

type constraints

adding, 316

specifying, 315-319

type inference, 16

closure expressions, 127

dictionaries, 48

type methods, 175, 225-228

extensions, 289-290

type parameters, generics, 314-315

type properties, 223-228, 266

accessing from instance properties, 224

extensions, 287-289

structs, 224

typealias keyword, 229, 288

types

determining an instance’s type, 235-237

downcasting, 237-238

functions, 102-103

protocol names as types, 268-269

U

[top]

UI (user interface), 351

UI constraints, adding to interfaces, 367-369

UInt, 17

unary minus operator, 29

unary operators, 27

increment and decrement operators, 28

logical NOT operator, 28

unary minus operator, 29

underscore (_), 358

Unicode character, 15

unowned references

closure capture lists, 258

reference cycles, 254-255

unsigned integer, 17

unwrapping

optional variables, 54-55

variables, optional binding to unwrap, 56

updating

items in arrays, 44

prepareForSegue, 389

use cases, optional values, 58-61

user interface (UI), 351-352. See also interfaces

V

[top]

value types

assignments, 139

copying, 148

initializing, 187

external parameter names, 192-193

setting default values, 188-192

values

comparing, do-while loops, 84-85

initializing, data types, 22-23

in nested functions, versus references, 121

var, 40, 265

variables, 14

assigning, 14-15

declaring, 15

designating as optional, 54

optional binding to unwrap, 56

optional variables, nil coalescing operator, 58

variadic parameters, functions, 105-106

view controllers, 352, 356-357

viewDidLoad() method, 376

W

[top]

weak references, reference cycles, 252-253

where keyword, switch cases, 75-76

while loops, 81-83

conditions, 82

do-while loops, 83-84

comparing values, 84-85

random number generators, 85-86

infinite loops, 83

while loops, 82-83

wrapping optional variables, 54-55

X-Y-Z

[top]

Xcode, 2

auto-complete feature, 125

downloading, 2

overriding, 159

overview, 2-5

playgrounds, 6-7

Xcode command line tools, 249

Xcode playgrounds, ARC (Automatic Reference Counting), 249

xcrun, 8