See this Stackoverflow answer: http://stackoverflow.com/questions/3804219/what-is-the-diffe...
Basically, it's probably easier and less messy to just learn Obj-C.
The runtime method dispatch of Objective-C (protocols!) makes it possible. Basically Objective-C gives you what Qt had to kludge in with qmake/moc. And it's still pretty fast!
When I see how little code I have to write to do something basic in Cocoa/Obj-C, and how well it turns out, any problems I have with syntax go out with the window.
If you can think abstractly and use/like languages like Ruby and Lisp (and their reflection/metaprogramming features), I think you'll be surprised by the amount of stuff you can do at runtime in native code. I started doing Obj-C a week ago and am about to submit my first free, 90% custom-drawn control app to Apple for approval.
Yes, the syntax is initially unappealing, but you get over it after about a day. On top of that, Xcode + Interface Builder is the best GUI dev environment I've used yet.
They were right.
I still believe Objective-C, paired with Cocoa is far and away the best programming language and environment out there. I've worked on the internals of windows, lots of C++, lots of Java (used to be my favorite), done .net, done a bunch of scripting languages, python, perl, lingo and actionscript, and lisp and erlang.
On the server it should be erlang (for serious code, for less serious use your favorite script)... and on desktop and mobile, Objective-C and Cocoa are really quite spectacular.
Like Ruby/Python it has a specific style that gives you a different perspective than other languages. I now find myself using ObjC style-isms in other languages.
This is how I felt about erlang. But the importance of concurrency was so high to me that I forced myself to learn the language, and now I love it.
A couple times learning a new language after being annoyed that it isn't like the language you already know, and I think people might recognize that every language has a reason for being....