It's easy if you come from a C type of background or have been introduced to those concepts. Someone coming from, say, PHP, or .NET, and have never done any "lower" level programming will find Obj-C much more difficult to grasp. Two examples:
Pointers. Some people just can't this concept. Dereferencing, etc, are most likely alien concepts. Also, header files and the general mechanics of Obj-C/C/C++ are very different from Java/.NET type languages.
I'm an embedded SW engineer, I do a lot of my work in C/C++, so Obj-C wasn't a problem for me. That said, I really don't like Obj-C at all. Its rather annoying. The syntax for function calls, and func definitions is less intuitive than C. Also things like "+" and "-" to differentiate class vs instance methods seems silly.Why not use static like everything else does? And whats the deal with the @property and @synthesize stuff? Not really a fan.