Другой способ решения этой проблемы - изменить способ отображения свойства перечисления для построителя интерфейса. Например:
#if TARGET_INTERFACE_BUILDER
@property (nonatomic, assign) IBInspectable NSInteger fontWeight;
#else
@property (nonatomic, assign) FontWeight fontWeight;
#endif
Это предполагает наличие перечисления FontWeight. Он основан на том факте, что перечисления и их необработанные целочисленные значения могут использоваться в Objective-C как синонимы. После этого вы можете указать целое число в построителе интерфейса для свойства, которое не идеально, но работает и сохраняет небольшую степень безопасности типов при программном использовании того же свойства.
Это лучшая альтернатива, чем объявление отдельного целочисленного свойства, поскольку вам не нужно писать дополнительную логику для обработки второго целочисленного свойства, которое также можно использовать для достижения того же результата.
Однако это не работает со Swift, потому что мы не можем неявно приводить целое число к перечислению. Любые мысли о решении, которые будут оценены.