Outra solução alternativa para isso é alterar como uma propriedade de enumeração aparece para o construtor de interface. Por exemplo:
#if TARGET_INTERFACE_BUILDER
@property (nonatomic, assign) IBInspectable NSInteger fontWeight;
#else
@property (nonatomic, assign) FontWeight fontWeight;
#endif
Isso pressupõe um enum chamado FontWeight. Ele se baseia no fato de que enums e seus valores inteiros brutos podem ser usados de forma intercambiável em Objective-C. Depois de fazer isso, você pode especificar um inteiro no construtor de interface para a propriedade que não é ideal, mas funciona e mantém uma pequena quantidade de segurança de tipo ao usar a mesma propriedade de forma programática.
Esta é uma alternativa melhor do que declarar uma propriedade inteira separada porque você não precisa escrever lógica extra para lidar com uma segunda propriedade inteira que também pode ser usada para realizar a mesma coisa.
No entanto, isso não funciona com o Swift porque não podemos converter implicitamente de um inteiro para um enum. Quaisquer pensamentos sobre a resolução que serão apreciados.