Hi Daniel. First, thanks for writing this book. I’ve spent the day carefully going through and following along with all but the last two chapters (didn’t seem iphone-relevant - my actual goal). I think the book is scoped well for “eager beaver” types with some exposure to C (mine is 10 years ago and it was ok) and some depth in another language. I love that I could make it through in a day, albeit a long one, and though it was my first exposure to mac programming, I feel it’s a decent foundation for digging into iphone dev. …we’ll see, that’s tomorrow :-). Anyway, it might be worth stressing upfront that if this is the reader’s first exposure to mac/Objective-c, really struggling with and doing the exercises rather than reading ahead will force the reader to engage with and apply the material, providing the most value.
Ok, on to the details. I took some notes as I went through the book, and hopefully some of these will be helpful for you. Let me know if any of these aren’t clear. Hopefully the linked screenshots come through and are easy for you to understand.
p38, footnote 2: It might be helpful to point to the relevant section in “Objective-C 2.0 Programming Language”. Say “search for “Sending Messages to nil” or look in the “Object Messaging” section in Chapter 1
Incomplete sentence http://screencast.com/t/7TXie2xpVPr
Opinion: Numbering code examples every 5 lines still leaves me counting (minor nit). How about every 2 lines?
Could use more explanation (page 121) http://screencast.com/t/zSyB7BMm4
Formatting error?: http://screencast.com/t/l7rQFJc7ju
Possible accidental question mark: http://screencast.com/t/8H14fG3g
Confusing section: around page 179 (Category example #2)
The section doesn’t really explain what’s happening when you import NSViewController+ActivityMonitor.h into MainWindowController. Does it mean that from this point on in the program’s execution all instances of NSViewController will have this extension, is it only for instances created after MainWindowController is loaded, or something else? I’m ok with there being “magic” with Categories, but after following along with this section I’m not sure how they behave.
Also, are Categories always used with Protocols? I’ll read up on the Apple docs to answer these questions, but I think just a couple of sentences about “what’s going on here” would help other readers too.