Un'altra soluzione a questo problema è modificare il modo in cui una proprietà di enumerazione appare al costruttore di interfacce. Per esempio:
#if TARGET_INTERFACE_BUILDER
@property (nonatomic, assign) IBInspectable NSInteger fontWeight;
#else
@property (nonatomic, assign) FontWeight fontWeight;
#endif
Ciò presuppone un'enumerazione denominata FontWeight. Si basa sul fatto che le enumerazioni ei loro valori interi grezzi possono essere usati in modo intercambiabile in Objective-C. Dopo aver fatto ciò, è possibile specificare un numero intero in Interface builder per la proprietà che non è l'ideale, ma funziona e mantiene una piccola quantità di sicurezza dei tipi quando si utilizza la stessa proprietà a livello di programmazione.
Questa è un'alternativa migliore rispetto alla dichiarazione di una proprietà intera separata perché non è necessario scrivere logica aggiuntiva per gestire una seconda proprietà intera che potrebbe essere utilizzata anche per ottenere la stessa cosa.
Tuttavia, questo non funziona con Swift perché non siamo in grado di eseguire il cast implicito da un numero intero a un enum. Qualsiasi pensiero sulla soluzione che sarebbe apprezzato.