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 ...

Respuestas a la pregunta(1)

Su respuesta a la pregunta