This was a good book for introducing myself to the language. I wouldn't use it as a guide for good practice in class design, though. I found places where I thought it could have done better on that subject, but perhaps the author was trying to deliberately avoid it, since that could have made the learning curve too steep.
You don't need to know anything about C or Objective C to learn from it. It treats the subject as if you haven't programmed in either. It doesn't go too fast. If you already know C, there are some chapters you can skip, since they will be purely review. It gives you a basic foundation for understanding the "lay of the land" of the language, and some basic classes: strings, file management, and memory management (if that's necessary), so that you can do some basic things in it, and if you need to learn more, you will understand better where to find the information. It gives some cursory information about Cocoa. This is not a book you want if you're trying to learn about that. It's just on the Objective C language.
It has instructions on how to use XCode, but I found I was able to do all of the examples using Terminal, Emacs, and the command line Objective C compiler (it shows you how to use this as well), since all of the examples had console output.
I went through another book prior to this, "Learning Cocoa with Objective C," by James Davidson, and felt confused about some language features, since it was mostly geared toward giving you just enough Objective C to get Cocoa features to work. I liked the approach of this book, because it just focused on the language.