Errata for iPhone SDK Development
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 B14.0, released 16 days 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.
| Paper | Description | Found in | Fixed in | |
|---|---|---|---|---|
| 0 |
#38901: Hi, I would like to ask the authors if they can include in the next beta, a chapter about the streaming video. I think such subject is missin...more...
Chris Adamson says: The "HTTP Live Streaming" protocol is mentioned in the "Streaming Support in iPhone OS 3.0" sidebar in beta 14.0. Note that this is primarily a server-side concern, so you don't have any work to do in your iPhone app other than providing a URL to the MPMoviePlayerController.
|
B12.0
16-Apr-09 |
||
| 1 |
#38742: I just spent half my day messing around with scroll views before finding a video that happened to mention the property I needed to set (conten...more...
|
B11.0
05-Apr-09 |
||
| 1 |
#39158: One of the things that is the hardest for me to understand in the example applications, is how all of the objects fit together; what does the ...more...
|
B13.0
10-May-09 |
||
| 19 |
#39736: mobi version does not display some text correctly. For example the text on page 19 of the pdf, second sentence under the section titled "Creat...more...
|
B14.0
29-Jun-09 |
||
| 24 |
#39772: In the last paragraph of section 1.3 a line reads "The simulator rotates the device
left of right by ninety degrees and the text rotates alo...more...
|
B14.0
30-Jun-09 |
||
| 24 |
#39581: enjoying working with your book.
found a small problem using the iphone in Unnamed Chapter page 24/28 4.94% into book or pdf book page 43
...more...
|
B14.0
21-Jun-09 |
||
| 26 |
#39520: tools to navigate the code with. -> tools with which to navigate the code.--Ronald H Bingham |
B14.0
17-Jun-09 |
||
| 27 |
#39542: "If it’s easier to find what you are looking for
from an alphabetically ordered list you can hold down the option key
and click on the symb...more...
|
B14.0
18-Jun-09 |
||
| 32 |
#39106: I think it would be a good addition to this chapter to point out the Research Assistant (which can be found under Help in Xcode). It is of gre...more...
|
B13.0
05-May-09 |
||
| 33 |
#39714: "The Cocoa Touch application frameworks (...) contains most of the classes ..." - frameworks contain, or framework contains--Jakub Suder |
B14.0
28-Jun-09 |
||
| 35 |
#39688: In the footer: "... Xcode appends the project name to the filename, like HelloUser-Info.plist ..." The correct jargon is "prepends," not "appends."--Bradley Grzesiak |
B14.0
26-Jun-09 |
||
| 52 |
#38815: in the .mobi version of this file (approximately location 620 on a Kindle), the 2nd graphic on PDF page 52 is 90% blank, with the real graphic...more...
|
B11.0
09-Apr-09 |
||
| 54 |
#39197: This is an erratum for the formatting of the PDF, not the text of the book: The first page of this and every chapter is missing the "Report e...more...
|
B13.0
15-May-09 |
||
| 61 |
#38510: Some references in your latex document are not right -> [?]--Norman Rosner |
B11.0
25-Mar-09 |
||
| 64 |
#39704: "As you learned in Section 2.7, Managing
Application Memory, on page 50 a property that copies or retains its
object value will first relea...more...
Chris Adamson says: The release is mentioned in the "Accessing Variables as Properties" section on page 53: "However, you can also use retain to send a retain message to the object being set (ensuring that your object will be an owner of it), while also release-ing any previous value."
|
B14.0
27-Jun-09 |
||
| 64 |
#39725: "assigned self to [super init]"
|
B14.0
29-Jun-09 |
||
| 65 |
#39091: As I've wrote in the forums, it would be nice to add how initWithCoder, initWithNibName and awakeFromNib fit into this whole lifecycle and wha...more...
Chris Adamson says: Section 2.5 (Anatomy of an iPhone Application) mentions that initWithCoder is called when an object is deserialized from the nib (you might intuit that this must occur before viewWillLoad and viewDidLoad). awakeFromNib is not used anywhere in the book as of b14.0 (it exists, but is more typical of Mac programming, IMHO), so we're leaving it alone. Finally, initWithNibName isn't a lifecycle method at all: it's used to programmatically create ViewControllers, as seen in the File I/O chapter's example.
|
B13.0
04-May-09 |
||
| 66 |
#39071: I had to change -(void)viewWillAppear:(BOO)animated { -to (void)viewDidAppear:(BOOL)animated { in order to get the view to update once I pres...more...
|
B13.0
02-May-09 |
||
| 69 |
#39629: After the code example there are two paragraphs which read:
"Now that we have our inter face defined, let’s build the implementation.
The ...more...
|
B14.0
23-Jun-09 |
||
| 71 |
#39723: Missing apostrophe in sentence near the bottom of the page:
"The text field del-
egate protocol is very similar to the application delegat...more...
|
B14.0
28-Jun-09 |
||
| 77 |
#39773: Para 2 of section 4.6 begins: "In Interface Builder let’s create a new interface..." Should be: "In XCode let's create..."--Adam Block |
B14.0
30-Jun-09 |
||
| 79 |
#39755: All that remains is to make the connection from the File’s OwnereditingViewController –>All that remains is to make the connection from the Fi...more...
|
B14.0
30-Jun-09 |
||
| 83 |
#39737: 4.2 Setting up a Table-Based Navigation
Either the "a" should be deleted, or you need to add something to the heading. I'm betting the for...more...
|
B14.0
29-Jun-09 |
||
| 89 |
#39549: • UITableViewCellStyleValue1: A large right-aligned black textLabel on
the left, and a slightly smaller left-aligned detailTextLabel on the ...more...
|
B14.0
18-Jun-09 |
||
| 89 |
#38873: I don't think this way of getting custom cells is better at all. The loop in the previous version was a little hackish, but followable. This m...more...
Chris Adamson says: Thanks for the feedback. This approach does seem more slight-of-hand-y and less explicit than what we had in previous betas. What recommends it, aside from eliminating two classes (the custom cell class and the factory for getting cells from nibs), is the fact that this is explicitly what Apple's UIKit engineers advised me to do, while I was doing some work for them not related to the book. It's also what they showed at WWDC 2008.
|
B12.0
14-Apr-09 |
||
| 94 |
#39796: You tell the user to add the ivar, property, and synthesis, but you don't mention the need to import the newly added MovieEditorViewController...more...
|
B14.0
02-Jul-09 |
||
| 94 |
#38862: Similar to the other comments, I would say that it is unclear how you expect the reader to get to the point where the instructions on p. 95 ma...more...
Bill Dudney says: Hi, and thanks for taking the time to post an errata!
I'm trying to fix this and I don't see where the instructions on pg 95 refer to downloading the code? Could you elaborate with maybe some text I could search on so I can find and fix the problem?
Thanks again!
|
B11.0
14-Apr-09 |
||
| 97 |
#39707: Text: Select the bar button, bring up the Identity Inspector
(D1), and change its style to “Add”; this will change its appearance to a simple...more...
|
B14.0
27-Jun-09 |
||
| 97 |
#39719: The sentence:
Select the bar button, bring up the Identity Inspector
(D 1), and change its style to “Add”; this will change its appearance...more...
|
B14.0
28-Jun-09 |
||
| 99 |
#39752: The footnote is truncated on my edition and ends at "The previous" --Dallas Hockley Chris Adamson says: In beta 14, the footnote continues on page 100. |
B14.0
29-Jun-09 |
||
| 101 |
#39709: Text: open MainWindow.xib, find the table Should Read: open RootViewController.xib, find the table--Damian OSuilleabhain |
B14.0
27-Jun-09 |
||
| 102 |
#39684: "rewrite the if (cell==null)" should be " rewrite the if (cell==nil)"--Cliff White |
B14.0
26-Jun-09 |
||
| 102 |
#39685: "On line 2 is that we load the Movi-
|
B14.0
26-Jun-09 |
||
| 113 |
#39791: In the example code:
- the UITableViewCell is created with older CGRect rather than the style.
- The UITableViewCell's text property is ...more...
|
B14.0
01-Jul-09 |
||
| 119 |
#39792: I can't quite tell what is going on with the UIBarButtonItem. The code is not mentioned in the narrative, and does not seem to actually do any...more...
|
B14.0
01-Jul-09 |
||
| 124 |
#39717: "crated for us by the template" should be "created for us by the template"; although it is an interesting (and acceptable) statement! :)--Cliff White |
B14.0
28-Jun-09 |
||
| 128 |
#39639: I'm running iPhone 3.0 in the simulator, and the line " [cell autorelease]; " kept crashing the application. Worked fine when I commented it out.--Roger Kenny |
B14.0
24-Jun-09 |
||
| 129 |
#39408: This is the first mention of UITextView, but it isn't explained here. Perhaps a short descriptions would be good. |
B13.0
11-Jun-09 |
||
| 134 |
#39164: It's nothing important really, but in the second listing, you could synthesize the property and then override just the setter and have the get...more...
Chris Adamson says: True, but the idea of doing your own property implementation is tricky enough (as an aside, no less), in a chapter that's already gotten a lot of complaints for its difficulty, so this is something we probably won't add to the mix.
|
B13.0
10-May-09 |
||
| 137 |
#36627: There's currently no coverage of UISeachBar. Would dovetail nicely with the sqlite chapter methinks.--M. Looney Chris Adamson says: We ended up mentioning the UISearchBar in passing in the "iPod Library Access" chapter, as part of the "search bar and search display controller" provided by IB in iPhone SDK 3.0. |
B8.0
26-Dec-08 |
||
| 138 |
#39105: At the top, the code for DirectoryViewController.m is displaying an if-else statement. The statement is correctly closed with a curly brace, b...more...
|
B13.0
05-May-09 |
||
| 138 |
#39165: "We also need two IBActions" -> only one of the two methods is an IBAction.--Jakub Suder |
B13.0
10-May-09 |
||
| 139 |
#39108: All the way at the bottom: "It provides the
|
B13.0
05-May-09 |
||
| 141 |
#38732: IMHO it would be more natural to store the 24-hour preference as a BOOL wrapped in an NSNumber, instead of a @"YES"/@"NO" string. But that's j...more...
Chris Adamson says: Yeah, I can go either way on this. Boolean values as ints is very much in the C tradition, which a lot of us come from (myself included). But since that line of thinking isn't necessarily intuitive to those with other backgrounds, or who are starting their programming careers on the iPhone, I think it's helpful to use the more obvious (if perhaps less efficient) strings.
|
B11.0
05-Apr-09 |
||
| 141 |
#39099: It's not clear if you actually want the reader to implement either of these file reading techniques or are just offering then for discussion. ...more...
|
B13.0
05-May-09 |
||
| 141 |
#39102: I just spent 6 hours debugging my attempt to use the stringWithContentsOfFile: method. It was coming up with empty file contents. After learni...more...
|
B13.0
05-May-09 |
||
| 142 |
#39115: The text refers to the figure as a guide for creating the view for the contents controller. I'm assuming we are supposed to use the View XIB t...more...
|
B13.0
05-May-09 |
||
| 143 |
#38728: "we’ve given the FlipSideViewController the methods uses24Hour, setUses24Hour, selectedTimeZone, and setSelectedTimeZone" - did we? I don't re...more...
Chris Adamson says: That sentence begins "In the sample app," by which we mean the downloadable sample code. I thought these kinds of getters and setters were too trivial and too much a distraction from the preferences stuff to make any more than a fleeting mention of.
|
B11.0
05-Apr-09 |
||
| 144 |
#39103: Your view design for the file contents includes a field for the size of the file. There is no mention of this in the text whatsoever. I see in...more...
|
B13.0
05-May-09 |
||
| 145 |
#39100: You tell us how to write the setUpAsynchronousContentLoad method, but you never tell us where to call it from, or how it gets called if it som...more...
|
B13.0
05-May-09 |
||
| 146 |
#39070: I am finding this chapter very frustrating. I'm currently on the section about reading the file asynchronously. You don't tell us anything abo...more...
|
B13.0
02-May-09 |
||
| 148 |
#39283: Figure 7.7: Dispaying a UIActionSheet for file actions --> Displaying--Quang Anh Do |
B13.0
30-May-09 |
||
| 149 |
#39143: wishy-washy: "Notice that the method takes a variable number of argu- ments for the "nor mal" buttons, and requires you to provide a final NULL...more...
|
B13.0
07-May-09 |
||
| 149 |
#39144: vague and incomplete: "You also provide a delegate which will receive an actionSheet:clickedButtonAtIndex: callback." This should be an instru...more...
|
B13.0
07-May-09 |
||
| 150 |
#39140: The description of the new controller we need uses confusing terminology and non-obvious design. It doesn't make sense to say a controller "ha...more...
|
B13.0
07-May-09 |
||
| 151 |
#39184: (maybe this isn't a technical error, but if not, then that fact deserves discussion): It seems dangerous to use an internal data structure as ...more...
|
B13.0
11-May-09 |
||
| 151 |
#39141: The following english is weak, misleading and inappropriately subtle: "Notice that we also need to alert the previous DirectoryViewController ...more...
|
B13.0
07-May-09 |
||
| 159 |
#39187: pp159, ver B13.0
Missing Word: "of" => .... get a list "OF" know time zones ...
In FlipsideViewController.h, add the protocol declaratio...more...
|
B13.0
12-May-09 |
||
| 163 |
#39063: "we dno’t need one" -> we don't need one--Jakub Suder |
B13.0
02-May-09 |
||
| 164 |
#39727: Line #3 under the shaded box, "In RootViewController.h, we'll #define...."
There is no "RootViewController.h" file, It shall be "MainViewC...more...
|
B14.0
29-Jun-09 |
||
| 164 |
#39591: In the paragraph preceding the code snippet for MainViewController.h, the reader is directed to add #defines to RootViewController.h as oppose...more...
|
B14.0
21-Jun-09 |
||
| 166 |
#39735: The FlippableClock example works perfectly fine in the simulator. However, if installed on the iPhone (OS 3) the 24h setting will be ignored. ...more...
Chris Adamson says: Ah, sorry. We had a footnote about this in previous betas, but mistakenly cut it out when rewriting this chapter for 3.0. The actual device behavior is that the app's formatting works if 24-hour is turned off in the System Settings app. If 24-hour is ON in the system settings, that overrides what we're trying to do with the NSDateFormatter here. We'll restore the explanation in the final edition.
|
B14.0
29-Jun-09 |
||
| 170 |
#39795: "dno’t need one" should be "don’t need one"--Cliff White |
B14.0
02-Jul-09 |
||
| 174 |
#38957: The example on chapter 9 (The SQLite Database) has a runtime error (Program received signal: “EXC_BAD_ACCESS”. ) on the line [shoppingListItem...more...
Chris Adamson says: I agree with your reasoning about autoreleased objects. However, at least in the downloadable example code, shoppingListItems is not autoreleased. It's created with the line:
shoppingListItems = [[NSMutableArray alloc] initWithCapacity: 100];
which creates the array with retain count = 1.
|
B12.0
21-Apr-09 |
||
| 181 |
#39728: This page mentions to a script name "make-table-script", but it is not in the "DatabaseShoppingList" folder. It is in the "OldDatabaseShopingL...more...
|
B14.0
29-Jun-09 |
||
| 193 |
#39753: Example application generates an EXC_BAD_ACCESS when viewing the "List by Price" tab for a second time. This is because the code listed on Pag...more...
Chris Adamson says: Nice catch! Thanks!
|
B14.0
30-Jun-09 |
||
| 197 |
#39513: "However, if you are one of the majority developers for which SQL is just not that exciting then you are in luck." should be something like "H...more...
|
B14.0
17-Jun-09 |
||
| 198 |
#39519: First paragraph: "API's" should probably be "API".
|
B14.0
17-Jun-09 |
||
| 199 |
#39543: How nitpicky is this? The screenshot contains a typo: "Macs" shouldn't have an apostrophe. Really.--John Daily |
B14.0
18-Jun-09 |
||
| 201 |
#39512: "hierarchal" should be spelled "hierarchical"--Aaron Brethorst |
B14.0
17-Jun-09 |
||
| 206 |
#39514: "Recall that the Documents directory is the only write-able space we have access too from within our applications." -- the word "too" should b...more...
|
B14.0
17-Jun-09 |
||
| 207 |
#39092: Comment in code that reads: 'if pervious failure count' Should read: 'if previous failure count'
|
B13.0
04-May-09 |
||
| 209 |
#39754: Line #4, "When you have added all three"
|
B14.0
30-Jun-09 |
||
| 212 |
#39720: the middle of the paragraph reads:
choose the checkbox next to Session and Target
I think it should read:
choose the checkbox next ...more...
|
B14.0
28-Jun-09 |
||
| 213 |
#39721: After you click the next button...
|
B14.0
28-Jun-09 |
||
| 217 |
#39515: "In addition to making it really easy to populate the table view, the FRC also manages memory very agressveily" -- "agressveily" should be "ag...more...
|
B14.0
17-Jun-09 |
||
| 220 |
#39052: Can I get a reference to my ZergSupport library in "more XML parsing options" please? My library makes it very easy (promise) to exchange data...more...
|
B13.0
01-May-09 |
||
| 221 |
#39516: "Being a pro at table view’s by now" -- the plural form of "table views" has an unnecessary apostrophe.--Aaron Brethorst |
B14.0
17-Jun-09 |
||
| 223 |
#38309: Would it be possible to get more information on working with images? It'd really be helpful to have more information on things like image zoom...more...
|
B11.0
11-Mar-09 |
||
| 225 |
#39550: In the first sentence of the second paragraph on the page. Should makign be making?--Phillip Dixon |
B14.0
19-Jun-09 |
||
| 253 |
#39150: I have noticed numerous places where there is no comma after an introductory adverbial phrase - I believe there should be one and the pause I ...more...
|
B13.0
08-May-09 |
||
| 280 |
#39162: The correct name must be movie.m4v, NOT video.m4v as stated here:
The downloadable sample
assumes you’ll drop a single MPEG-4 file2 called v...more...
Chris Adamson says: Fixed the typo. We'll look for a memory leak during a final pass over all the code examples soon. Have you looked to see if it's still leaking with iPhone OS 3.0?
|
B13.0
10-May-09 |
||
| 298 |
#39637: The text says that the video file should be named "video.m4v" for the sample code, but the sample code looks for a file named "movie.m4v" (in ...more...
|
B14.0
24-Jun-09 |
||
| 311 |
#39532: currentTimeUpdateTimer = [NSTimer scheduledTimerWithTimeInterval:0.1
target:self selector:@selector(updateCurrentiPodItemTime)
userInfo:NU...more...
Chris Adamson says: No. 1.0 would check once a second, so the displayed time could be as much as 0.999 seconds off. By updating every tenth of a second, we're more accurate. Yes, it's pedantic, and you might choose to update less frequently in a real app if you need the cycles elsewhere.
|
B14.0
18-Jun-09 |
||
| 396 |
#39569: I recommend changing the title of section 19.4 from "Video" to "Captured Video", to clarify the Table of Contents.--Richard Smiley |
B14.0
20-Jun-09 |
||
| 416 |
#39427: You could also mention that the Clang analyzer, described in next chapter, can be very useful for finding such errors like "one release too mu...more...
|
B13.0
12-Jun-09 |
||
| 419 |
#39722: Seems to missing the method header for accelerometer:didAccelerate (I believe other examples in the book have the header)--Thomas Dimson |
B14.0
28-Jun-09 |
||
| 432 |
#39426: If you add -V option to scan-build, it will automatically start the server and open the page in your web browser.--Jakub Suder |
B13.0
12-Jun-09 |
||
| 440 |
#39571: In the last full paragraph, change "it's delegate" to "its delegate".--Richard Smiley |
B14.0
20-Jun-09 |
||
| 442 |
#39572: In the first full paragraph, change "it's delegate" to "its delegate".--Richard Smiley |
B14.0
20-Jun-09 |
||
| 444 |
#39573: In the first boxed paragraph, change "it's position" to "its position" in each of the last two sentences.--Richard Smiley |
B14.0
20-Jun-09 |
||
| 444 |
#39574: In the box, change "the 3G iPhone has" to "almost every iPhone has". It is likely that future iPhones won't be properly described by "the 3G ...more...
|
B14.0
20-Jun-09 |
||
| 447 |
#39528: The code comment says 25 meters, but the code and text say 20 meters.--Nevan |
B14.0
18-Jun-09 |
||
| 447 |
#39529: The timeDelta method isn't explained and it's code can only be found in the online resources.--Nevan |
B14.0
18-Jun-09 |
||
| 448 |
#39570: I recommend elevating "Compass" to a numbered section (23.3). The compass is returning orientation information, so geometrically it is more c...more...
|
B14.0
20-Jun-09 |
||
| 452 |
#39592: "Its in the ’Data Views’ group, here is a screen shot of the library with Map View selected."
Its should be It's, and the comma is grammati...more...
|
B14.0
21-Jun-09 |
||
| 457 |
#39568: I'd think using the MAX and MIN macros would help readability here--Thomas Dimson |
B14.0
20-Jun-09 |
||
| 459 |
#39576: The TouchXML bit seems out of place. Reading through the examples, I'd really rather see the part about "Selecting an annotation" before runni...more...
|
B14.0
20-Jun-09 |
||
| 459 |
#39670: The section on TouchXML and the AddressGeocoder seems to be unfinished.
It only describes at length how to include the TouchXML but not abo...more...
|
B14.0
26-Jun-09 |
||
| 467 |
#39803: 1st para. Implies there is something we can do in how our app launches related to starting another app and returning to our app. Can we setup ...more...
|
B14.0
03-Jul-09 |
Stuff To Be Considered in the Next Edition
| Paper | Description | Found in | Fixed in | |
|---|---|---|---|---|
| 228 |
#38937: BarGraphView seems not to work with 3.0 beta 3. Instead of the bargraphs I only see a gray view, just like the background color in the other e...more...
Bill Dudney says: we can't do 3.0 stuff until the nda is lifted, but we will address all this kind of stuff and every example will run in 3.0 before the book ships.
Thanks for taking the time to submit an errata!
|
B12.0
19-Apr-09 |
||
| 310 |
#39531: Rather than using the NSFormatter's stringForObjectValue, it's far simpler to use a method like the following:
+ (NSString *)stringFromTime...more...
Chris Adamson says: That would simplify an already complex example, but I do kind of want to show off NSFormatter too. I'm deferring this one for the moment...
|
B14.0
18-Jun-09 |
||
| 492 |
#39567: As far as I can see, this chapter does not directly address the interpretation of crash logs. Because we may get crash logs from Apple, once ...more...
Chris Adamson says: Too big a task for this edition, but we'll keep it in mind for the next. Thanks.
|
B14.0
19-Jun-09 |
