Cómo usar diferentes declaraciones de interfaz en tiempo de compilación sin confundir Interface Builder
Si tengo varias compilaciones de mi aplicación, versiones pagas y gratuitas, por ejemplo, y quiero tener diferentes interfaces dependiendo de qué compilación, parece confundir Interface Builder.
Por ejemplo
// MyViewController.h
#ifdef FREE
@interface MyViewController : NSObject <UIActionSheetDelegate, ADBannerViewDelegate>
#else
@interface MyViewController : NSObject <UIActionSheetDelegate>
#endif
{
IBOutlet UILabel* myLabel;
}
- (IBAction) myAction:(id)sender;
Cuando cargo MyViewController.xib en IB, muestra advertencias en la ventana de información como "La salida 'myLabel' del 'Propietario del archivo' está conectada a 'My View' pero 'myLabel' ya no está definida en MyViewController".
¿Hay alguna manera de hacer esto para no confundir a IB?
Supongo que la otra opción es simplemente no #definirlo y tener una definición para todas las compilaciones. ¿Qué sucede si compilo con mi controlador conforme a ADBannerViewDelegate (que requiere iOS 4) y lo implemento en iOS 3.2? Si eso funciona, tal vez no haya problema ...