I'm having trouble with the real concept of objects... to me from my past programming experience, an object is either a type also known as a struct, or it is a GUI object like a button or whatever. I can make these things work but I'm just entering in the code he says to put in, I don't know what's going on when it comes to classes instances objects and all that.
Objective-C objects are not that different than your experience (if I understand your experience properly). They aren't really structs (like in C++), but I suspect most of your difficulty is really that of nomenclature. Is your experience C++? Java?
Pretty much everything you run into in the book is one or more objects. Each object has an "interface" (in C++ this is equivalent to a class declaration) and an "implementation" (in C++ this is equivalent to a class definition).
In objective-C you send "messages" to objects like [object messagename:contents_of_message]. In C++ or similar languages you do the same thing by calling functions: object->messagename(contents_of_message). In c++ you have static class functions, whereas in objective-C you prefix the message declaration/definition with a "+" to accomplish largely the same thing.
There are some important differences (C++ checks to see if the "message" is part of the "class" at compile-time, objective-C allows/requires you to explicitly call the parent-class's version of overloaded functions with [super message], etc.), but most of the concepts are pretty much the same. Mostly it's the names of things that change.
(Note: before people jump all over me, yes, I know I oversimplified much of what i just said).