We try to keep our books accurate, but sometimes mistakes creep in. This page lists the errors submitted by our astute readers. If you've found a new error, please submit it.

The latest version of the book is P1.0, released over 1 year ago. If you've bought a PDF of the book and would like to upgrade it to this version (for free), visit your home page.

Key: Typo Tech. Error Suggestion Not a problem Next edition

By default this page displays the errata for the latest version of the book. If you have a previous version, select it here:  

(To find out what version you have, look at the copyright page, a few pages in from the front of the book. If it says (say) 'Second Printing', then here it'll be P2.0. If there are interim PDF releases in that printing, they'll be 2.1, 2.2, and so on.)

PDF Paper Description Found in Fixed in
xi

#50442: 'sounds good?' ... not 'sound good'--Tilo Sloboda

P1.0
06-Jan-13
1
#53228: This is a bug with the web page for the book, not the book itself. On the Details page on PragProg it says "Q&A with Clay Allsopp, author of R...more...
P1.0
29-Nov-13
1
#50427: On the Kindle version, the code font is significantly smaller than the text. In order to read it, I have to amp up the zoom a lot more than I...more...
P1.0
02-Jan-13
3

#50364: The header of the comment box reads "$.:unshift".
Everywhere else on the page it reads "$:.unshift".--Jochen Schäfer

P1.0
12-Dec-12
3

#50365: "The first two lines import necessary..." - the first line is just specifying the file encoding, so instead this should refer to lines 2 to 3.--Andy Waite

P1.0
12-Dec-12
11
#52030: Last sentence on page 11 reads "frames have a origin". Should be "an": "frames have an origin". (The sentence might read easier if it were ...more...
P1.0
18-Jun-13
12

#50366: The text refers to the method application:didFinishLaunching: rather than application:didFinishLaunchingWithOptions:--Andy Waite

P1.0
12-Dec-12
15
#50444: I think it would be worth it to spend a moment and explain why it's UIView.alloc.initWithFrame(...) and not UIView.new.initWithFrame(). To ...more...
P1.0
06-Jan-13
15

#50844: URL at bottom to is dead--Ern Sheong Lin

P1.0
22-Feb-13
15
#50422: URL in the footnote doesn't work. Should probably be: developer.apple.com/library/ios/#documentation/uikit/reference/UIControl_Class/Refere...more...
P1.0
30-Dec-12
17
#50367: I think the animation code sample would be difficult to read for beginners. It has 7 levels of indentation, something which many Ruby programm...more...
P1.0
12-Dec-12
18
#52003: "This will handle figuring out the index of the box and adding the UILabel; we just to give it a box elsewhere in our code, and it will work."...more...
P1.0
13-Jun-13
19
#51728: On the transition between page 18 and 19, looks like the word 'have' is missing from this sentence: "we just to give it a box elsewhere in ...more...
P1.0
01-Jun-13
19

#50468: First line: "we just to give it a box elsewhere in our code". The "to" is either superfluous or should be replaced with "have to"/"need to"/etc.--Karan Vasudeva

P1.0
15-Jan-13
19

#50368: Rather than using #select and then negating the expression with #not, it might be clearer to use #reject.--Andy Waite

P1.0
12-Dec-12
20
#51362: I'm getting an undefined method error for 'initWithTitle' from the UIAlertView in app_delegate.rb. Could this be due to an iOS update? My vers...more...
P1.0
22-Apr-13
23

#51477: Teal is not one of the predefined colors. I believe you meant cyan. --Alexander Aguilar

P1.0
08-May-13
24

#51526: view.move_to [view.frame.origin.x, view.frame.origin.y - (@last_view.frame.size)]

@last_view.frame.size should be @last_view.frame.size.height--Kevin Mah

P1.0
16-May-13
27
#50445: The filename above the code examples does not match what it would be if you are following along. For example, in Chapter 2, in section 2.3, t...more...
P1.0
07-Jan-13
35
#51563: def initWithNibName(name, bundle: bundle) super self.tabBarItem= UITabBarItem.alloc.initWithTitle("Other", image: nil, tag: 1) ...more...
P1.0
22-May-13
36

#51564: this works:

self.tabBarItem=UITabBarItem.alloc.initWithTabBarSystemItem(UITabBarSystemItemFavorites, tag: 1)--MIchael Nietzold

P1.0
22-May-13
36
#51582: def change_color color_text = @text_field.text.downcase color_method = "#{color_text}Color" if UIColor.respond_to?(color_method) color = UI...more...
P1.0
23-May-13
39
#52112: To prevent a crash if the User clicks on the "change" button before they add a color. In change_color_controller.rb file, add a line just b...more...
P1.0
03-Jul-13
46

#76885: a popular RubyGem called BubbleWrap bubblewrap.io that “wraps” many

That link is dead

--Bert Mcguirk

P1.0
23-Jun-14
55

#51271: "if we don’t have one (nil), we run the begin/end block." There isn't a begin/end block in the sample code on the previous page.--Clark Wang

P1.0
11-Apr-13
55 44
#51416: There is a loop that does what the attr_accessor method does by default with multiple arguments: PROPERTIES = [:id, :name, :email] PROPER...more...
P1.0
28-Apr-13
55 44

#51417: The above code needs to be amended to add the PROPERTIES constant

PROPERTIES = [:id, :name, :email]
attr_accessor *PROPERTIES
--Dayton Nolan

P1.0
28-Apr-13
56
#50437: The bug is on page 56 (as printed on the PDF page), or 67 (as numbered in Mac Preview.app) It's in Section 5 (right before 5.2) on UITable...more...
P1.0
05-Jan-13
56
#50713: Extra "end" in the listing of alphabet_controller.rb in section 5.1: the first end shown, in the middle of the function, is unmatched. def...more...
P1.0
05-Feb-13
56

#51270: The sample code "alphabet_controller.rb" miss '|| begin' at the end of 4th line. The correct sample code is on rubymotion-tutorial.com/5-tables/--Clark Wang

P1.0
11-Apr-13
56
#50398: in the definition of tableView:cellForRowAtIndexPath: there is a rogue 'end' keyword. Also there on line 35 of the file below when followin...more...
P1.0
20-Dec-12
57
#51596: cell = tableView.dequeueReusableCellWithIdentifier(@reuseIdentifier) #this block should not indicated as new insertions #instead of cell ...more...
P1.0
24-May-13
57

#50388: cell = UITableViewCell.alloc...should really be ||= in this case (in case you dequeued an already active cell).--Cory Wilkerson

P1.0
18-Dec-12
66
#53015: In this paragraph : The generated test in main_spec also has the describe() and it() blocks, which add structure to our tests. You can read t...more...
P1.0
09-Oct-13
68
#76454: When the button is created it appears to be covered by the status bar. This causes the test to fail. Simply pushing the button down below the ...more...
P1.0
27-Feb-14
74

#50465: Double dot in the filename earch_controller.rb just above the source code--Wolfram Saringer

P1.0
13-Jan-13
74
#50995: There are two dots before the "rb" extension of the file "search_controller.rb", approx. half way down the page: Let’s start setting up the...more...
P1.0
10-Mar-13
76
#50714: If the app is as advised on this page, it crashes on the button.addTarget call. Commenting this call out solves the problem. 'tap_red', et...more...
P1.0
05-Feb-13
76
#50996: We aren't dealing with a User model; we are dealing with a Color model. Approx. 3/4 of the way to the bottom of the page: It’s time to add ...more...
P1.0
10-Mar-13
76
#51588: "It’s time to add that find() static method to our User. We’re finally going to play with HTTP requests here, starting with HTTP.get." Shou...more...
P1.0
24-May-13
78
#50773: After making the changes up to page 84, if you select the "Top Color" tab its name changes to "Detail". This can be fixed by moving ' self.ti...more...
P1.0
07-Feb-13
78

#50426: There's an extra 'end' in the code at the top of the page for 'search_controller.rb'. It's the 'end' just above the open_color method.--Scott Moschella

P1.0
02-Jan-13
81

#50433: The text says that we're going to add this method: Color#add_color() to color.rb, however in the code we implement Color#add_tag()--Scott Moschella

P1.0
04-Jan-13
87

#50380: It says add find method to user, but it should be color--Maxwell salzberg

P1.0
15-Dec-12