Only way to learn is to use the codes. You can have all the books in the world and read them religiously, but it won't make much sense if all you do is reading them. With that said, I think just about any book you find with decent reviews is worth buying, rest is up to you.
...this is [sort of] true. The problem is when you start typing in code without understanding a) why you're typing it, b) what it means, and c) how to fix it if it doesn't work (which happens frequently), you end up getting even more frustrated.
A perfect example is Erica Sadun's book (
The iPhone Developer's Cookbook). If you flip through the book looking for, say, an example that shows you how to connect your app to the Address Book and allow you to select a contact, you will find a snippet of code that purports to do just that. The problem is, because there's no context for that snippet, a beginner is unable to make use of it. You can cut and paste it into an Xcode project,
but it won't work. And, without some kind of knowledge base to work from, not only will you not know what's wrong with it or how to fix it, but you won't even know how to ask for help to make it work.
So, yes, working through the code examples is a good idea. But you're going to have to study the rest of the material, too, and it wouldn't hurt to do the practice exercises that a lot of the books offer.