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.
任何的想法?
你可以试试:
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
| 归档时间: |
|
| 查看次数: |
1572 次 |
| 最近记录: |