在swift中结合objective-c enum

Man*_*eau 3 objective-c swift ios8

我在我的swift应用程序中使用wahoo fitness API(在objective-c中).我试图从枚举中的按位多个项目组合,这不是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;
Run Code Online (Sandbox Code Playgroud)

以下结果是: 'WFSensorType_t' is not convertible to 'Bool'

let sensorType = WF_SENSORTYPE_HEARTRATE | WF_SENSORTYPE_BIKE_SPEED | WF_SENSORTYPE_BIKE_CADENCE // WFSensorType_t
Run Code Online (Sandbox Code Playgroud)

棘手的部分是sensorType需要传递给另一个接受a的wahoo API对象,WFSensorType_t所以我无法将枚举包装成其他东西,否则它将无法将其传递回现有的API.

任何的想法?

Ant*_*ong 5

你可以试试:

let sensorType = WF_SENSORTYPE_HEARTRATE.value | WF_SENSORTYPE_BIKE_SPEED.value | WF_SENSORTYPE_BIKE_CADENCE.value
Run Code Online (Sandbox Code Playgroud)

但是sensorTypeSwift会将其推断为类型UInt8.你不能声明它 WFSensorType_t