iphone xcode target xcconfig

iphone: obtener la variable definida por el usuario en la configuración de destino por código?



nfc iphone 6 (2)

Mi proyecto tiene múltiples objetivos. Cada objetivo tiene su propio archivo de Class para configurar cosas. Quiero almacenar ese nombre de Class en una configuración de destino ( Info.plist o configuración de construcción de Target). Para que pueda definir qué clase necesito usar en cada objetivo según esta configuración.

De acuerdo con esta pregunta , puse "una variable User Defined específica del objetivo" en la configuración de construcción de cada objetivo.

¿Pero no sabes cómo recuperarlo en mi código?


Como el archivo Info.plist también está preprocesado, puede utilizar este enfoque:

Defina una configuración definida por el usuario en su configuración de compilación, por ejemplo, CLASS_NAME. Y una clave para su archivo Info.plist. Asigne un nombre a la clave CLASS_NAME y establezca el valor en ${CLASS_NAME} .

A continuación, puede acceder a esta configuración mediante:

NSString* className = [[[NSBundle mainBundle] infoDictionary] valueForKey:@"CLASS_NAME"];


No puedes usar directamente una variable definida en la configuración de compilación. Estas variables están destinadas a ser utilizadas por las herramientas de construcción.

En su lugar, defina una macro de preprocesador en la variable Macros de preprocesador como ''MYVAR = 5''. Puedes acceder a estas macros en tu código como:

#if MYVAR==5 //Do something #endif

Tenga en cuenta que la evaluación de estas expresiones se realiza en tiempo de compilación y no en tiempo de ejecución.

Es un uso muy típico definir una macro sin importar el valor. Por ejemplo, defina ''DEBUG = 1'' en la configuración de depuración de la compilación y ''RELEASE = 1'' en la configuración de compilación de la versión.

Luego puede probar usando #ifdef o #ifndef

#ifdef DEBUG // Log #endif