The latest version of the book is P1.0, released about 4 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.
- Reported in: B5.0 (15-Jun-11)
PDF page: NA
XCode Project: OrganizedTableView
iOS Recipes PDF: B5 (no page number as source is not contained in the book)
Within the PRPSwitchSettingsCell.m file, - (id)initWithCellIdentifier:(NSString *)cellID method, the self.selectionStyle property is assigned twice. Recommend removing either the first or last property assignment.--N. Berendt
- Reported in: B4.0 (31-May-11)
PDF page: xvi
It would be useful, I think, if the subdirectories in the source-code download had their chapter/recipe numbers prefixed.--Jonathan Lundell
- Reported in: B1.0 (19-Mar-11)
Paper page: 0
I am little bit surprised that the book does not cover any scenarios that deal with multi threading (beside the file upload example). For example how one would prevent user input while in the background data from a web service is loaded asynchronously. Or like creating a modal dialog which blocks the code execution etc. I am using CFRunloopRun() but encounter various shortcomings with it like that if one is not careful I run into multiple execution of it (which ended up in a deadlock) or that UI events are not consumed but queued so that multiple clicks still are executed afterwards.--Andreas Schaefer
- Reported in: P1.0 (08-Jul-11)
PDF page: 5
The link to the forum for discussion of the book is not found.--Gangadhar
- Reported in: B4.0 (16-May-11)
PDF page: 7
Middle of page the Figure 3 description text is not shown under the figure.
After the Figure 3 label the word "accessed" is truncated to "cessed" with perhaps some other text missing? See copy of start of text below:
"Set the UIStatusBarHidden key to YES to hide the status bar on launch. If you want to show it in your main UI, set the splash screen’s showsStatusBarOnDis- missal property to YES
Figure 3—Hiding the status bar on launch
cessed anywhere in the code."--Nicholas Clay
- Reported in: B4.0 (19-May-11)
PDF page: 16
The book web page URL has a trailing comma when you try to click on it or copy it.
- Reported in: B2.0 (29-Mar-11)
PDF page: 36
It could help clarity if the labelA was omitted or moved to the preceding code snippet, since the snippet it is in doesn't do anything with it and is focused on the setup of a UIView with UILabel.--Allen Ding
- Reported in: B4.0 (06-May-11)
PDF page: 50
In the setAttributedText: method in coreText/Classes/PRPAttributedLabel.m wouldn’t it make sense to wrap the setter code in a [self willSetValueForKey:@"attributedText"] and [self didSetValueForKey:@"attributedText"] pair to let key/value observers know about the change? It may be a little out of scope, though, but generally seems like a good idea (just as you’re checking for pointer equality).--Joachim Bondo
- Reported in: P1.0 (13-Feb-12)
PDF page: 90
Looks like labelFrame is not defined in the sample code.--Nicholas Furness
- Reported in: P1.0 (29-Aug-11)
PDF page: 97
The last line on the page reads:
cell.titleLabel.text = [NSString stringWithFormat:@"Cell #%d", indexPath.row];
but it should probably read:
cell.textLabel.text = [NSString stringWithFormat:@"Cell #%d", indexPath.row];--Rob D.
- Reported in: P1.0 (02-Aug-11)
PDF page: 97
Figure-19 is identified as "Reuse identifiers in Interface Builder" but there's nothing obvious in that image about where to set them. This is on the wrong view for a table view cell object. It needs to be on the Attributes Inspector where Reuse Identifier is listed.--Patrick Burleson
- Reported in: B5.0 (10-Jun-11)
PDF page: 191
The defaults are loaded from a property list—DefaultPrefs.plist—bundled inside the app.
NSString *prefs = [[NSBundle mainBundle] pathForResource:@"Prefs" ofType:@"plist"];
Should it be...?
NSString *prefs = [[NSBundle mainBundle] pathForResource:@"DefaultPrefs" ofType:@"plist"];
- Reported in: P1.0 (01-Oct-11)
PDF page: 192
In the first paragraph of the "Solution" section, third sentence, you have reversed the order of two words "we that". It should read, "... making sure that we support migration between model versions.".--Kim Shrier
- Reported in: P1.0 (19-Aug-11)
PDF page: 193
In the "Usa a Versioned Model" box at the top of the page, third sentence, the method name mergedModelFromBundles: is misspelled. It is missing the "l" in "Bundles"--Kim Shrier
- Reported in: P1.0 (19-Aug-11)
PDF page: 198
In the second paragraph, first sentence, there is an extra word "do" at the end of the sentence. It should read, "Remember, categories do not let us declare storage on the class they extend; only methods.".--Kim Shrier
- Reported in: B4.0 (12-May-11)
PDF page: 202
Recipe 39, the "infoxbox" "Use a Version Model" seems to contain some editing annotation that shouldn't be there. First sentence of the 2nd paragraph:
"This recipe uses the more explicit The code tag should not be here. precisely because you may end up having more models in your bundle than you thought."