He leído muchas definiciones de # if y # statement statement.
He intentado utilizar la forma en que he leído, pero sólo con el error "Elemento inválido al comienzo de una expresión del preprocesador" en la línea que lo define como un comentario a continuación:#define o #if error de declaración
#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
#define is_ipad (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
#define is_ipad_hd ((is_ipad == 1 && [UIScreen mainScreen].bounds.size.width > 1024) ? YES : NO)
#define is_iphone_hd ([UIScreen mainScreen].bounds.size.width > 480 ? YES : NO)
#define device_width 480.0f
#define device_height 320.0f
#if (is_ipad_hd == YES) // Error here
#define device_width = 2048.0f
#define device_height = 1496.0f
#endif
Por qué funciona en tutoriales simples y cuando intentamos algo más complejo, ¡suceden estas cosas!
Las directivas del preprocesador se evalúan antes de la compilación; tan claramente que no pueden operar con información de tiempo de ejecución. (No sé el Objetivo C, pero '[UIScreen mainScreen] .bounds.size.width' suena como algo en tiempo de ejecución ...) –
Ok, ahora lo entiendo. Entonces, ¿cómo especifico el tamaño de la pantalla del dispositivo? Disculpa mi lentitud, porque algunas técnicas de investigación en inglés son difíciles de traducir y se ven como debería. –