I suppose it's ok compared to something like C++, but coming from a more dynamic/functional preference (Common Lisp, Python, etc) I find Objective C clunky (my experience is in using it on the iPhone, so I'm really talking about the language as it is implemented on that platform).
Reference counting memory management gets old and annoying very quickly.
I'm glad to see what are effectively lambdas in iPhone OS 4, but wow it took a long time to get them! And the whole iPhone api requires delegate objects all over the place, so without lambdas or the ability to make some kind of anonymous inline class your code gets spread all over the place.
I don't like header files, nor do I see the need for them in 2010 for crying out loud - I shouldn't have to write the same thing in two places just because a compiler isn't smart enough to figure it out.
Overall I would prefer to just use C, if I need something really low level, or something much more high level if I don't (Common Lisp, Python, etc). Objective C straddles the two places badly imho.