Apple's guidelines on what applications are allowed on the store are supposed to be a confidential agreement between developers and Apple, though they have been leaked on the web. I'll let you find them, look for "section 3.3.1".
Anyway, why do Apple use Objective-C? I suppose the most obvious answer is the tautological one - because they have lots of experience with using Objective-C. iOS and Mac OS X are both derived from technology acquired when Apple bought NeXT computer in 1996. NeXT had originally licensed Objective-C from StepStone through the late 1980s, then eventually bought all of the rights to the language, technology and trademarks. When Mac OS X was released in 2001, it offered a number of different application environments:
- "Blue Box", a Mac OS 9 virtual machine where existing Mac applications could run unmodified
- "Carbon", a C API designed for making it easy to bring Mac OS 8 applications to native Mac OS X
- "Cocoa", the Objective-C stuff that modern Mac and iOS apps are built with
- "Cocoa-Java", the same API as Cocoa, but accessed from the Java VM.
So I guess, based on the way your question is worded, you're wondering why we don't use something like Cocoa-Java these days. Well that particular technology was apparently a lot of work to maintain, an investment Apple didn't need to make as developers proved to be happy enough with Objective-C. It's only in the last 3-4 years that Apple have even pushed Mac developers away from Carbon. So you've got a Mac platform where developers are happy with Cocoa and Objective-C, including the engineers at Apple. Now you need to write a mobile phone OS, applications and the SDK to let ISVs write their own apps. Which would you choose?
Notice that on the Mac we also have BridgeSupport, that makes it easy to access the Objective-C runtime from Ruby, Python and any language with appropriate dynamic binding. That's not possible on iOS. I can only guess why, I think it would make static analysis of submitted apps much harder.