我正在使用wahoo fitness API(它是用objective-c编写的)在我的swift应用程序中。 我正在尝试将来自枚举的多个位项进行组合,该枚举不是NS_ENUM。 它被定义为:
typedef enum
{
/** Specifies non-existent sensor. */
WF_SENSORTYPE_NONE = 0,
/** Specifies the bike power sensor. */
WF_SENSORTYPE_BIKE_POWER = 0x00000001,
/** Specifies the bike speed sensor. */
WF_SENSORTYPE_BIKE_SPEED = 0x00000002,
/** Specifies the bike cadence sensor. */
WF_SENSORTYPE_BIKE_CADENCE = 0x00000004,
...
} WFSensorType_t;
以下导致出现:
'WFSensorType_t'
无法转换为 'Bool'
。let sensorType = WF_SENSORTYPE_HEARTRATE | WF_SENSORTYPE_BIKE_SPEED | WF_SENSORTYPE_BIKE_CADENCE // WFSensorType_t
棘手的部分是需要将 sensorType
传递给另一个 wahoo API 对象,该对象接受一个 WFSensorType_t
,因此我不能将枚举包装到其他内容中,否则它将无法传递回现有的API。
有什么想法吗?
NS_ENUM
,而应该是NS_OPTIONS
:typedef NS_OPTIONS(NSInteger, WFSensorType_t) { ... };
- newacct