Errata

Introducing iOS 8

Errata for Introducing iOS 8

Submit your own errata for this product.

The errata list is a list of errors and their corrections that were found after the product was released.

The following errata were submitted by our customers and have not yet been approved or disproved by the author or editor. They solely represent the opinion of the customer.

Color Key: Serious technical mistake Minor technical mistake Language or formatting error Typo Question Note Update

Version Location Description Submitted by Date submitted
ePub Paragraph following figure 2-29

The last sentence has a grammatical / typographic error. The current sentence is:

"Pick your a color and close the Color Picker."

The sentence should be:

"Pick your color and close the Color Picker."

or

"Pick a color and close the Color Picker."

Michael Jordan  Nov 06, 2014 
Paragraph following figure 2-37 second sentence

The second sentence begins with:

"If you a running OSX Mavericks (10.9),"

"a" should be "are" so the sentence reads:

"If you are running OSX Mavericks (10.9),"

Michael Jordan  Nov 06, 2014 
Paragraph following figure 2-37 last sentence

The last sentence is:

"The Assistant Editor will detect at what file you are working on and then display a helpful related file."

The word "at" after "The Assistant Editor will detect" is superfluous and the sentence should be:

"The Assistant Editor will detect what file you are working on and then display a helpful related file."

Michael Jordan  Nov 06, 2014 
Chapter 3, Loops section, first paragraph

The first sentence is:

"Imagine you a working out at the gym and your workout calls for you to lift weights eight times."

"a" should be "are" so the sentence reads:

"Imagine you are working out at the gym and your workout calls for you to lift weights eight times."

Michael Jordan  Nov 06, 2014 
Chapter 4, Subclasses section, Inheritance subsection, second to last sentence

Superfluous "the" in the sentence. The "the" before "these" isn't needed.

The sentence currently is:

"However, the cabin class can add or change the these if needed."

and should be:

"However, the cabin class can add or change these if needed."

Michael Jordan  Nov 07, 2014 
Chapter 4, Subclasses section, Overriding Initializers subsection, second paragraph, first sentence

The word "with" is superfluous.

Current sentence:

"The cabin class defines its own initializer method by using with the init keyword."

should be:

"The cabin class defines its own initializer method by using the init keyword."

Michael Jordan  Nov 07, 2014 
Chapter 4, Subclasses section, Overriding Methods subsection, code sample following first paragraph

The Cabin class init method is missing the override keyword.

Currently:

class Cabin: House {
init(){

should be:

class Cabin: House {
override init(){

Michael Jordan  Nov 07, 2014 
Chapter 4, Exercise - RaceCar, paragraph following figure 4-5

I believe the intent at this point in the book is to defer version control, same as the earlier exercises, so I believe you wanted to say leave the Git repository option "unselected" instead of "selected."

Current sentence:

"Leave Create Git Repository on My Mac selected and click Create."

should be:

"Leave Create Git Repository on My Mac unselected and click Create."

This would also match the screen shot and default behavior of the dialog box.

Michael Jordan  Nov 07, 2014 
Chapter 4, Exercise - RaceCar, paragraph following figure 4-23

The second sentence should say leave value "UILabel" instead of "Label."

Current sentence:

"Enter brandLabel for the variable name and leave the remaining values as Label and Weak."

should be:

"Enter brandLabel for the variable name and leave the remaining values as UILabel and Weak."

Michael Jordan  Nov 07, 2014 
Chapter 5, Passport Exercise, paragraph following figure 5-26

The new CountriesTableViewController.swift file has been created and the text says:

"The new CountriesTableViewController.swift file will automatically be opened inside of Xcode. You may notice two warnings on the numberOfSectionsInTableView and numberOfRowsInSection methods. The warning will read similar to this.

Overriding instance method parameter of type UITableView with implicitly unwrapped optional type UITableView!

Click each warning triangle and select the Fix-it,

Remove ! to make the parameter required."

The exclamation point isn't included in the CountriesTableViewController.swift so there are no warnings and no fixes to be made.

Michael Jordan  Nov 11, 2014 
Chapter 5, Passport Exercise, section following figure 5-26

In the section that discusses adding code to the new override method tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell the reader is instructed to add the following line of code.

cell.textLabel!.text = country

This raises the following error in XCode: "Operand of '!' should have optional type; type is 'UILabel'"

The "Fix-it" recommended solution from XCode is to delete the "!"

Michael Jordan  Nov 11, 2014 
PDF Page 59
First code example

This is called Type Inference and it simplifies creating a variable.
Here is an updated example,

var numberOfYears = 30
let name = "Steve"
let isMale = true
var bankAccountBalance = 1034.20

By default Swift creates a type Double from a statement of this type,
var bankAccountBalance = 1034.20, not a Float.

The updated example stated above was in reference to this code sample on page 58 shown below.

var numberOfYears: Int = 30
let name: String = "Steve"
let isMale: Bool = true
var bankAccountBalance: Float = 1034.20

Fernando Soto  Nov 14, 2014 
PDF Page 66
last code segment

in the book and false

for index in 1...5 {
println("The current number is \(index))"
}

correct

for index in 1...5 {
println("The current number is \(index)")
}

right parenthesis and quote sign have to change

David Kreuzinger  Nov 06, 2014 
Printed Page 67-68
for-in discussion

I guess the "println" command doesn't exist any more in the version of Swift I'm using (2.0? Just downloaded it. The correct command is "print" now.

Bob Matthis  Dec 02, 2015 
PDF Page 91
End of page

I love this activity, but why do you cast the billTextField.text as an NSString? I think I know the answer, but it seems that this is a jump at this stage of the book.

Simon Hooper  Oct 02, 2014 
PDF, ePub Page 97
2nd paragraph

The text defines a function

func goodMorning(name: String, day: String){
println("Good Morning \(name), Happy \(day)")
}

and then goes on to state that it can be called like this,

goodMorning(name: "Steve",day: "Saturday")

However, as no external names are given in the function definition, the correct way to call the function should be

goodMorning("Steve", "Saturday")

Anonymous  Sep 27, 2014 
ePub Page 111
example at Modifying Arrays

names = names + "Wally”

should be

names = names + ["Wally"]

Osamu Ota  Oct 06, 2014 
PDF Page 119
Paragraphs 2 and 3

Excellent chapter!!!

Second paragraph: Instruction for where to click is in the wrong location and an extra + is included
Third paragraph typo: "issues and issues"

Simon Hooper  Oct 02, 2014 
PDF Page 135, 136
Code examples on both pages

Every mention of "UITableView" is mysteriously replaced with "+UITableView+" in the 5 different examples on these two pages.

Lost formatting?

Simon Front  Oct 22, 2014 
ePub Page 143
right after personal challenge

lowerCaseString

is

lowercaseString

Osamu Ota  Oct 13, 2014 
ePub Page 144
right after “Or add String variables between other Strings. For example,”

let firstName = "Steve "

should be

let firstName = "Steve"

Osamu Ota  Oct 13, 2014 
PDF Page 144, 156
2nd last line of code on page 156

Lots of Simons reading this book :-)

Unlike "Simon" (no last name) I had no big problems following the instructions and creating the app without downloading the completed project. Only problem was missing the "Editor -> Embed -> Navigation Controller" step on page 144. I suggest changing figure 5-9 to a screenshot of the menu with the item selected - the auto layout stuff should be known by this point in the book.

On page 156 you use the code "cell.textLabel!.text = country" but XCode throws the following error:

"Operand of postfix, '!' should have optional type; type is UILabel"

After which it refuses to compile and run unless the exclamation mark is removed. I do not know the original reason for it, but without it the app runs fine...

Simon Front  Oct 22, 2014 
ePub Page 148
first sample code at "Modifying Array"

At first sample of "Modifying Array" is

var names = ["Steve", "Jeff", "Andy"]
names = names.append("Wally")

however if I try this code at playground, Xcode return error:
'()' is not convertible to '[String]'

What would be correct code here?

Simon  Nov 02, 2014 
ePub Page 148
First sample code at "Modifying Array"

names = names.append("Wally")

should be

names.append("Wally")

Simon  Nov 02, 2014 
PDF Page 155
Descriptions below

First, I want you to know that this chapter suddenly gets more difficult than the previous chapters. That makes me very nervous about continuing with the book. Second, there are numerous errors in this chapter that make following the project impossible. I downloaded the working version, but cannot reconcile my project with the text. The problems start on page 155: What is the Navigation Bar that is referred to? I guessed correctly. Next, reference to TableViewCell is unclear and inaccurate. Third, Final paragraph on page 155 is confusing and unexplained. Page 157 is confusing. For example, why are we creating a TableViewController when we have just added a TVC to the storyboard? This needs to be explained. Minor text inaccuracies need to be corrected. Here's a big problem: Pps 158-159 refer to a method numberOfRowsInSection which does not exist-- it is named TableView. Also, a second version is created (IN YOUR SAMPLE FILES)-- why are there two versions of the same method. I went through the chapter line by line about 3 times-- very frustrating! There are more errors in this chapter, I have only mentioned the most obvious.

Simon  Oct 08, 2014 
PDF Page 156
last third of the page

false

cell.textLabel!.text = country

correct

cell.textLabel.text = country

you have to remove the exclamation mark

David Kreuzinger  Nov 06, 2014 
PDF Page 161-184
Chapter structure

Chapter 7 is very messy.

The chapter starts with the sentence "In this chapter you will learn how to debug your code". And then jumps around between 4 vastly different topics.

The entire chapter jumps between debugging, documentation, App Icons and Launch Images. I would like to see this chapter split up into several minor chapters rather than this messy back-and-forth. Alternatively make 4 mini chapters each with individual exercises rather than one messy chapter, followed by one exercise covering 4 completely different items...

PS: Upon further investigation, I found out that yesterdays error, was caused by the recent release of iOS 8.1 which apparantly implemented some changes in Swift...

Simon Front  Oct 23, 2014 
ePub Page 227
ViewController section

... that controls the view.

controlls

Anonymous  Oct 30, 2014 
ePub Page 238
2nd example

tableView.dequeueResuableCellWithIdentifer

should be

tableView.dequeueReusableCellWithIdentifier

Osamu Ota  Oct 29, 2014 
PDF Page 252
4th paragraph

3rd line in the 4th paragraph contains two different delegates, but they are mashed together without the implied "&"

"Remember, the delegate must conform to both UIImagePickerControllerDelegate UINavigationControllerDelegate."

… should be

"Remember, the delegate must conform to both UIImagePickerControllerDelegate & UINavigationControllerDelegate.

Simon Front  Oct 27, 2014 
ePub Page 289
UIViewController sample code

I think explaining overwriting UIViewController class and how to printing line when viewDidLoad executed should be separated since there is no explaining how to use mySubController class.

Looks like author getting tired to teach to beginners from chapter5?

Simon  Nov 06, 2014 
ePub Page 330
First paragraph

The instructions read “At the top of the View Controller Scene is a light gray box; this is the navigation bar. Double-click it, type Passport, and then press Return.”

This did not work for me. I eventually stumbled onto the solution which is to double-click towards the center, horizontally, in the light grey box. When doing so an edit text box appears into which you can enter the name 'Passport'.

Alternatively, click into the light grey box once to select it, then click on the 'Attributes' button in the Utilities pane, then enter the name into the 'Title' box at the top.

Steve Graff  Aug 02, 2015 
ePub Page 337

“The cellForRowAtIndexPath method is called for each row inside the tableView. It creates the UITableViewCell and assigns text for each cell. Add the following line into the new method:

let cell = tableView.dequeueReusableCellWithIdentifier
("reuseIdentifier", forIndexPath: indexPath) as UITableViewCell

This got this error message:
"AnyObject is not convertible to “UITableViewCell”; did you mean to use ‘as!’ to force downcast?"

“Then add the following line of code:

cell.textLabel.text = country

This got this error message:
"Value of options type ‘UILabel?’ not unwrapped; did you mean to use “!” or ‘?’?"

I am using Xcode Version 6.3.2 (6D2105)

Excerpt From: Steve Derico. “Introducing iOS 8.” iBooks.

Roy Wagner  Jun 11, 2015 
ePub Page 342
First paragraph, second sentence.

The instructions read "Double-click the navigation bar and type "Countries Visited"" but this did not work for me. After struggling with this for a while I discovered that you need to double-click in the horizontal center area of the navigation bar, then you will find a 'edit text' field appear into which you can enter a name.

Steve Graff  Aug 02, 2015 
ePub Page 394
1st paragraph

At the end of the first paragraph it instructs the user to type 'import Map Kit' into MapViewController.swift right under 'import UIKit'

This has an incorrect space, should be 'import MapKit'

Steve Graff  Aug 19, 2015 
ePub Page 519
Top

At the top of the page kUTTypeImage and kUTTypeMovie are described, but no information is provided about what the prefixes of these are. Is 'k' mean it's a constant? What is UT?

Searching online I found that these are Uniform Type Identifiers. It would be helpful to include this information, would be good if a future version of this book, perhaps for iOS 9, is planned.

Steve Graff  Aug 06, 2015 
ePub Page 532
Code examples for isAvailableForService

The shown code for isAvailableForService is truncated on the right side of the page.

After zooming out on the page I was able to see the entire line. Also, if I selected the line and copied it, then pasted it elsewhere the entire line appeared.

Not clear if this is a problem with the ePub file formatting, or a problem with iBooks.

Steve Graff  Aug 06, 2015