small medium large xlarge

Errata for iOS SDK Development

 

The latest version of the book is P1.0, released over 3 years 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.

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

If you've found a new error, please submit it.

  • Typo
  • Tech. error
  • Suggestion
  • Maybe next edition
  • Not a problem
  • Reported in: B7.0 (11-Oct-12)
  • Fixed: 26-Jul-13, awaiting book release
#49940
Paper page: 19
Second paragraph, it says that the class name that contains the "SLServiceTwitter" constant is "SLServiceRequest", but the class name shown in the act...more...
  • Reported in: P1.0 (06-Dec-12)
  • Fixed: 26-Jul-13, awaiting book release
#50303
PDF page: 25

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.
  • Reported in: P1.0 (08-Dec-12)
  • Fixed: 26-Jul-13, awaiting book release
#50333
PDF page: 28
"By default, protocol methods are optional, but they can be made mandatory" should state the opposite: "By default, protocol methods are mandatory,...more...
  • Reported in: B8.0 (04-Nov-12)
  • Fixed: 26-Jul-13, awaiting book release
#50134
PDF page: 31

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.
  • Reported in: B7.0 (18-Oct-12)
  • Fixed: 26-Jul-13, awaiting book release
#49956
PDF page: 32
The square braces indicate that we're sending an Obj-C message, with the SLComposeViewController class as the target that receives the message and can...more...
  • Reported in: P1.0 (16-Nov-12)
  • Fixed: 26-Jul-13, awaiting book release
#50173
PDF page: 35
Paper page: 35
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 "twitter...more...
  • Reported in: P1.0 (07-Dec-12)
  • Fixed: 26-Jul-13, awaiting book release
#50306
PDF page: 46

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.
  • Reported in: P1.0 (19-Nov-12)
  • Fixed: 26-Jul-13, awaiting book release
#50181
PDF page: 60
In the code block, dismissing the tweet view controller (Line #11) is dependent on the user clicking 'Send'. When clicking 'Cancel', the view control...more...
  • Reported in: P1.0 (04-Jun-13)
  • Fixed: 26-Jul-13, awaiting book release
#51823
PDF page: 63
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" in the O...more...
  • Reported in: P1.0 (07-Dec-12)
  • Fixed: 26-Jul-13, awaiting book release
#50307
PDF page: 64
At the end of the second paragraph, you mention that the full class extension for PRPViewController contains the twitterWebView property when it shoul...more...
  • Reported in: P1.0 (13-Dec-12)
  • Fixed: 26-Jul-13, awaiting book release
#50373
PDF page: 64
Paper page: 49
"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 NSMutable...more...
  • Reported in: P1.0 (19-Nov-12)
  • Fixed: 26-Jul-13, awaiting book release
#50183
PDF page: 66
The implementation of handleTwitterData:urlResponse:error: doesn't clear the contents of twitterTextView before generating it anew. If the "Show my t...more...
  • Reported in: B8.0 (18-Oct-12)
  • Fixed: 26-Jul-13, awaiting book release
#49958
PDF page: 73
Noticed on the Readmill version of the book, in the code listing for Programming/PRPFirstProjectTweeter02/PRPFirstProjectTweeter/PRPViewController.m, ...more...
Chris Adamson says: Duplicate of #50173 (actually, this one was filed first… either way, both are fixed)
  • Reported in: B7.0 (07-Oct-12)
  • Fixed: 26-Jul-13, awaiting book release
#49933
PDF page: 80
The second sentence of the first paragraph in section "3.3 Concurrency and UIKit" ends with "call them" (referring to UIKit properties). Wouldn't it b...more...
  • Reported in: B7.0 (07-Oct-12)
  • Fixed: 26-Jul-13, awaiting book release
#49932
PDF page: 82

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

  • Reported in: P1.0 (04-Dec-12)
  • Fixed: 26-Jul-13, awaiting book release
#50260
PDF page: 84
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 ahead of the...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.
  • Reported in: B8.0 (27-Oct-12)
  • Fixed: 26-Jul-13, awaiting book release
#50065
PDF page: 87
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 reference t...more...
  • Reported in: P1.0 (29-Nov-12)
  • Fixed: 26-Jul-13, awaiting book release
#50217
PDF page: 88

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

  • Reported in: P1.0 (07-Dec-12)
  • Fixed: 26-Jul-13, awaiting book release
#50310
PDF page: 89
Below figure 36, probably after you talk about sizing the image view for the cookies, you might want to talk about updating the view constraints to ac...more...
  • Reported in: B8.0 (18-Oct-12)
  • Fixed: 26-Jul-13, awaiting book release
#49957
PDF page: 97

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

  • Reported in: P1.0 (06-Feb-13)
  • Fixed: 26-Jul-13, awaiting book release
#50740
PDF page: 98
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 already hav...more...
  • Reported in: P1.0 (07-Dec-12)
  • Fixed: 29-Jul-13, awaiting book release
#50312
PDF page: 98
In the second paragraph, first sentence the hyphenation for PRPAppDelegate.m looks odd. I would think the hyphen should be between PRP and AppDelegat...more...
  • Reported in: P1.0 (07-Jun-13)
  • Fixed: 29-Jul-13, awaiting book release
#51885
PDF page: 105
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 code ev...more...
  • Reported in: P1.0 (05-Dec-12)
  • Fixed: 26-Jul-13, awaiting book release
#50284
PDF page: 106

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."
  • Reported in: P1.0 (17-Nov-12)
  • Fixed: 26-Jul-13, awaiting book release
#50175
PDF page: 139

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.
  • Reported in: P1.0 (17-Nov-12)
  • Fixed: 29-Jul-13, awaiting book release
#50177
PDF page: 141
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 pattern of...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.
  • Reported in: P1.0 (17-Nov-12)
  • Fixed: 26-Jul-13, awaiting book release
#50176
PDF page: 142
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."--M...more...
  • Reported in: P1.0 (02-Dec-12)
  • Fixed: 26-Jul-13, awaiting book release
#50224
PDF page: 151
When the property recipeListVC is added to the headerfile PRPRecipeEditorViewController.h the next sentence says: In the implementation file, we ne...more...
  • Reported in: P1.0 (07-Dec-12)
  • Fixed: 26-Jul-13, awaiting book release
#50326
PDF page: 156

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.
  • Reported in: P1.0 (24-Nov-12)
  • Fixed: 26-Jul-13, awaiting book release
#50203
PDF page: 158
When adding the 'recipes' property to the new PRPRecipeDocument class, the book fails to note that the property getter should be copied from PRPRecipe...more...
  • Reported in: B8.0 (23-Oct-12)
  • Fixed: 26-Jul-13, awaiting book release
#49986
PDF page: 159

Figure 62 appears to be missing--David Yellin

  • Reported in: P1.0 (24-Nov-12)
  • Fixed: 29-Jul-13, awaiting book release
#50204
PDF page: 160
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's overr...more...
  • Reported in: P1.0 (24-Nov-12)
  • Fixed: 26-Jul-13, awaiting book release
#50205
PDF page: 162
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 document ...more...
  • Reported in: P1.0 (18-Nov-13)
#53167
PDF page: 162
Paper page: 149
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 section aga...more...
  • Reported in: B7.0 (02-Oct-12)
  • Fixed: 29-Jul-13, awaiting book release
#49908
PDF page: 163
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 from the ...more...
Chris Adamson says: Unable to replicate, sorry.
  • Reported in: P1.0 (04-Dec-12)
  • Fixed: 26-Jul-13, awaiting book release
#50259
PDF page: 172
Paper page: 160
PRPRecipesDocument.m is missing "recipes" property initialization for those following along writing their own code. The book says on page 160, paragra...more...
Chris Adamson says: Same underlying problem as #50203
  • Reported in: B7.0 (05-Oct-12)
  • Fixed: 26-Jul-13, awaiting book release
#49925
PDF page: 178
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 there in Xco...more...
  • Reported in: P1.0 (29-Jan-13)
  • Fixed: 29-Jul-13, awaiting book release
#50616
PDF page: 225
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 find the In...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?
  • Reported in: P1.0 (11-Jun-13)
  • Fixed: 26-Jul-13, awaiting book release
#51993
Paper page: 262
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 indexing...more...