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
19
#49940: Second paragraph, it says that the class name that contains the "SLServiceTwitter" constant is "SLServiceRequest", but the class name shown in...more...
B7.0
11-Oct-12
25

#50303: In the 4'th item for thought, second sentence, there is a space missing between "perhaps" and "handleFacebookButtonTapped:".--Kim Shrier

Chris Adamson says: There's a space there in the book's source; possibly a styling/layout thing for production to look at.
P1.0
06-Dec-12
28
#50333: "By default, protocol methods are optional, but they can be made mandatory" should state the opposite: "By default, protocol methods are ma...more...
P1.0
08-Dec-12
31

#50134: if the object isnil, nothing

-> is_space_nil_--Christoph Gommel

Chris Adamson says: There is a space there, you're just seeing the italics on "is" leaning too far into the monospaced "nil". We'll see what we can do to prettify this layout problem.
B8.0
04-Nov-12
32
#49956: The square braces indicate that we're sending an Obj-C message, with the SLComposeViewController class as the target that receives the message...more...
B7.0
18-Oct-12
35 35
#50173: The text says there's a string "yourtwittername" in the shown URL, but there's no such string, the example URL is "twitter.com/pragprog", not ...more...
P1.0
16-Nov-12
46

#50306: In the third paragraph, second sentence, there should be a space between "x-y" and "origin".--Kim Shrier

Chris Adamson says: There is a space there, you're just seeing the italics on "x-y" leaning too far into the monospaced "origin". We'll see what we can do to prettify this layout problem.
P1.0
07-Dec-12
60
#50181: In the code block, dismissing the tweet view controller (Line #11) is dependent on the user clicking 'Send'. When clicking 'Cancel', the view...more...
P1.0
19-Nov-12
63
#51823: The text reads "drag a UITextView from the Object library". In my version of XCode (Version 4.6.2 (4H1003)), this is just called a "TextView" ...more...
P1.0
04-Jun-13
64
#50307: At the end of the second paragraph, you mention that the full class extension for PRPViewController contains the twitterWebView property when ...more...
P1.0
07-Dec-12
64 49
#50373: "To get the NSString to behave as a normal, immutable string, we copy it into a plain NSString at assign-time." -- should be "To get the N...more...
P1.0
13-Dec-12
66
#50183: The implementation of handleTwitterData:urlResponse:error: doesn't clear the contents of twitterTextView before generating it anew. If the "S...more...
P1.0
19-Nov-12
73
#49958: Noticed on the Readmill version of the book, in the code listing for Programming/PRPFirstProjectTweeter02/PRPFirstProjectTweeter/PRPViewContro...more...
Chris Adamson says: Duplicate of #50173 (actually, this one was filed first… either way, both are fixed)
B8.0
18-Oct-12
80
#49933: The second sentence of the first paragraph in section "3.3 Concurrency and UIKit" ends with "call them" (referring to UIKit properties). Would...more...
B7.0
07-Oct-12
82

#49932: The penultimate word in the last sentence of the first paragraph should be twitterTextView not twitterWebView.--Bruce Hobbs

B7.0
07-Oct-12
84
#50260: Potential gotcha: the order matters here. If you aren't paying attention and put line 9 in the wrong place (like I did), say, at line 5 ahea...more...
Chris Adamson says: That probably wasn't any fun to track down, but I'm not sure there's an appropriate change to make to the text here. If you tried to set the viewController's recipe property before the viewController exists, it does make sense that it wouldn't work. The difference is that in Objective-C, this is a silent error (you're messaging nil), whereas other languages might blow up with a NullPointerException or something. Maybe we need to make a bigger point back in chapter 2 that while it's convenient to not crash when you message nil, it can also be the source of debugging frustration.
P1.0
04-Dec-12
87
#50065: In 4.1 Practicing MVC. I think you need to add: #import "PRPRecipe.h" at the top of PRPViewController.h so the property can resolve the ref...more...
B8.0
27-Oct-12
88

#50217: Minor typo: page 88 in ePub first line the URL in the code is "pragprog" twitter handle but text refers "yourtwittername".
--Dad

P1.0
29-Nov-12
89
#50310: Below figure 36, probably after you talk about sizing the image view for the cookies, you might want to talk about updating the view constrain...more...
P1.0
07-Dec-12
97

#49957: There is a reference to an image on page 98, but there is no image on page 98, just the image subscript. --Alex crouzen

B8.0
18-Oct-12
98
#50740: I have no idea what is meant by "Import the PRPRecipe.h filename and..." in the middle of the page. Assuming we continue from chapter 4, I alr...more...
P1.0
06-Feb-13
98
#50312: In the second paragraph, first sentence the hyphenation for PRPAppDelegate.m looks odd. I would think the hyphen should be between PRP and Ap...more...
P1.0
07-Dec-12
105
#51885: I encountered a possible erratum in the forward declaration of PRPRecipe. I'm hand coding the app myself because I find I remember more when I...more...
P1.0
07-Jun-13
106

#50284: Text refers to IMG_1948.jpg and code refers to cookie.jpg. Also, it may be helpful to show how to import the image into the project.--Foster Bass

Chris Adamson says: Adding images to the project was addressed in the previous paragraph, which begins "The downloadable sample code has an image…". You'll find the information you need starting with the sentence "To add an image file to Xcode, you can drag it from the Finder to the project navigator."
P1.0
05-Dec-12
139

#50175: On line 5 in the first text block there is a space missing at the end of the line between title and property--Magnus Rembold

Chris Adamson says: There is a space there in the source, it's just getting lost in the styling.
P1.0
17-Nov-12
141
#50177: In the second last block of text on this page, you mention, that the view will be in a navigation controller. So I would expect to find the pa...more...
Chris Adamson says: We'll be taking a different approach to navigation controllers in the next edition… may be easier to see what's going on when we go storyboards-only.
P1.0
17-Nov-12
142

#50176: In line 4 in the first text block I think it should read: "that THE textViewDidEndEditing: method is called before the recipe editor IS displayed."--Magnus Rembold

P1.0
17-Nov-12
151
#50224: When the property recipeListVC is added to the headerfile PRPRecipeEditorViewController.h the next sentence says: In the implementation fil...more...
P1.0
02-Dec-12
156

#50326: In the last paragraph, first sentence, there should be a space between "super" and "init".--Kim Shrier

Chris Adamson says: There's a space there, but the styling is crunching the words closer together in the PDF than they should be.
P1.0
07-Dec-12
158
#50203: When adding the 'recipes' property to the new PRPRecipeDocument class, the book fails to note that the property getter should be copied from P...more...
P1.0
24-Nov-12
159

#49986: Figure 62 appears to be missing--David Yellin

B8.0
23-Oct-12
160
#50204: In the second paragraph it says: "We need to ensure that we have an array ready in which to store recipes when the document is created, so let...more...
P1.0
24-Nov-12
162
#50205: In the section "Refine the Document" it says: "If you delete the app from the simulator and then rerun it from Xcode, you'll notice that our d...more...
P1.0
24-Nov-12
162 149
#53167: When I run the app and bring up the UIImagePickerController, I just get a black screen and a grey header at the top. I've gone through the sec...more...
P1.0
18-Nov-13
163
#49908: Xcode 4.5: Starting with the "DocumentRecipies_start" code and then working through page 170, up to Refine the Document: If you run the code f...more...
Chris Adamson says: Unable to replicate, sorry.
B7.0
02-Oct-12
172 160
#50259: PRPRecipesDocument.m is missing "recipes" property initialization for those following along writing their own code. The book says on page 160,...more...
Chris Adamson says: Same underlying problem as #50203
P1.0
04-Dec-12
178
#49925: In the middle of the page: "Tap the Add button on the bottom right..." should be "Tap the Add button on the bottom left..." It is located ther...more...
B7.0
05-Oct-12
225
#50616: My test script kept failing at the step where it was supposed to click the prep time stepper. With the keyboard on the screen, it couldn't fin...more...
Chris Adamson says: Try adding a script, and pasting in "Create new recipe UIA test.js" from the download code. This works for me with the download example, without having to hit return on the keyboard. Possible that the way your UI is laid out has the buttons under the keyboard?
P1.0
29-Jan-13
262
#51993: The book states "given int foo[], we can get the tenth member as either foo[9] or *(foo + (9 * sizeof(int)))." That's untrue. In C, array ...more...
P1.0
11-Jun-13