Zaten sordum, ama çok farklı bir başlık ile.
İPhone için derlerken #defines Xcode tarafından ayarlanır
Cevabımı oradan tekrarlayacağım:
"Kaynak kodu koşullu olarak derleme" altında SDK dokümanlarında bulunur
İlgili tanım, iOS çerçevesi içinde /usr/include/TargetConditionals.h dosyasında tanımlanan TARGET_OS_SIMULATOR şeklindedir. Takım zincirinin önceki sürümlerinde şunları yazmak zorundaydınız:
#include "TargetConditionals.h"
ancak bu artık geçerli (Xcode 6 / iOS8) araç zincirinde gerekli değildir.
Örneğin, cihazda çalışıp çalışmadığınızı kontrol etmek istiyorsanız,
#if TARGET_OS_SIMULATOR
// Simulator-specific code
#else
// Device-specific code
#endif
hangisinin kullanım durumunuza uygun olduğuna bağlı olarak.