A lot of people who have come to Objective-C from languages like C# and Java don't fully appreciate the fact that Objective-C is just a thin layer on top of C. Everything that you can do in C, you can do in Objective-C - structs, unions, typedefs, functions… it's all there. So, if you want to be a truly kick-ass Objective-C programmer, you really, really need to be a great C programmer as well.
If you didn't spend some quality time with C as your primary language (as most of my generation of programmers did), you might want to consider boning up on a little old-school procedural programming.
You know who is a kick-ass C and Objective-C programmer? Mike Ash. Today, and for the previous two Fridays, Mike has been covering one of the lesser understood aspects of the C language: type qualifiers. I seriously recommend reading these (and for that matter, every one of Mike's Friday Q&A blog entries):
Type Qualifiers, Part 1
Type Qualifiers, Part 2
Type Qualifiers, Part 3
It's a great explanation of something that's not easy to explain, so unless you're a guru-level C coder, go read it them.