В зависимости от типа вещи Вы то, если.. else'ing, рассмотрите создание иерархии объектов и использования полиморфизма. Как так:
class iBase
{
virtual void Foo() = 0;
};
class SpecialCase1 : public iBase
{
void Foo () {do your magic here}
};
class SpecialCase2 : public iBase
{
void Foo () {do other magic here}
};
Затем в Вашем коде просто называют p->, Foo () и правильная вещь произойдет.
Попробуйте передать SDK в командной строке, например:
xcodebuild -configuration Release -sdk iphonesimulator3.0