2D Dev questions

I'm interested in developing games for the iPhone and as such have a 3 part question:

1. What's the best 2D graphics library (opinions). I assume openGL for 3D.

2. I have a good understanding of C++. Should I move to objective C, or just learn some cocoa stuff for the iPhone API

3. I'm not sure I understand the licensing of some of the libraries I've looked at. Example cocos2D.. If I should choose to develop a paid app/game, how can I tell if any of the tools/libraries I use to do it are licensed appropriately.

Been scrolling the forums for a few days, but I think opinions/answers to the above would help allot of people out.

1) For iPhone, the "best" graphics library for games is OpenGL for 2D and 3D.

2) You need to learn at least a little bit of Objective-C to interface with the OS, but after that you can stick with C++ for everything else. Mixing C++ and Objective-C is Objective-C++. You do that by renaming the extension of your Objective-C files from .m to .mm to get the compiler to work with you. Beyond that, see the Apple docs on Objective-C 2.0, which also outline how to use C++ with it.

3) I dunno. There are several different licensing schemes and they often mean different things in different situations. Generally speaking if it's MIT, ZLIB/LibPNG or BSD licensed you're good to go without problem for using it in commercial software (but do please read the license(s) and research on the details as IANAL).