web-dev-qa-db-fra.com

Comment écrire si condition dans #ifdef. pour la mise en scène. dans objectif-c

J'ai besoin d'ajouter une condition supplémentaire dans cet appel Staging ..

comment le faire dans cet état. 

  #ifdef MYAPP_PRODUCTION
        buildMode = @"Production";
    #else

    #ifdef MYAPP_RELEASE
        buildMode = @"Release";
    #else MYAPP_DEBUG
       buildMode = @"Debug";
    #endif
    #endif

un autre est MyApp_Staging besoin d'inclure dans cette condition si comment faire cela?

22
user891268

Vous pouvez faire quelque chose comme ceci pour contenir toutes les options, y compris le nouveau mode intermédiaire, et rendre l’énoncé plus clair:

#ifdef MYAPP_PRODUCTION
    buildMode = @"Production";
#Elif MYAPP_RELEASE
    buildMode = @"Release";
#Elif MYAPP_DEBUG
    buildMode = @"Debug";
#Elif MYAPP_STAGING
    buildMode = @"Staging";
#endif
63
Suhail Patel

Votre question n’est pas très claire… Si vous voulez plusieurs conditions dans un #ifdef, voici une solution:

#if defined(MYAPP_RELEASE) && defined(MyApp_Staging)
    // ...
#else
    // ...
#endif
57
jv42

Dans Swift et Xcode 7, la syntaxe a été modifiée:

#if DEBUG || RELEASE
    let URL = "https://www.example.com/beta"
#elseif APPSTORE
    let URL = "https://www.example.com/prod"
#endif
8
paulvs

Si vous souhaitez annuler la condition avec 2 cibles de génération, utilisez la méthode suivante.

#if !(TOWNTALK || EPISD)

0
Rohit Mandiwal

Et ça?

#if defined(MYAPP_PRODUCTION)
  buildMode = @"Production";
#Elif defined(MYAPP_RELEASE)
  buildMode = @"Release";
#Elif defined(MYAPP_DEBUG)
  buildMode = @"Debug";
//#Elif defined(MYAPP_STAGING)
#else
  buildMode = @"Staging";  
#endif  
0
Hneel