Use*_*343 2 enums objective-c ios swift
我已经整合了Objective C框架以在我的Swift项目中使用.现在我的目标c框架我有一些Enum decalred alraedy
e.g.
enum LE_DEVICE_STATE
{
LE_DEVICE_STATE_DISCONNECTED=0,
LE_DEVICE_STATE_CONNECTING,
LE_DEVICE_STATE_CONNECTED,
LE_DEVICE_STATE_UPDATING_FIRMWARE
};
Run Code Online (Sandbox Code Playgroud)
但是现在当我尝试在开关盒中使用这个枚举时,它不允许我迅速并抛出错误
"二进制运算符'〜='不能应用于'LE_DEVICE_STATE'和'(LE_DEVICE_STATE)''类型的操作数
.so有人可以指导我如何编写此代码?
我试图做以下
switch (theDevice.state) {
case LE_DEVICE_STATE_DISCONNECTED:
self.btnConnect.setTitle("", forState: UIControlState.Normal)
case LE_DEVICE_STATE_DISCONNECTED:
self.btnConnect.setTitle("", forState: UIControlState.Normal)
case LE_DEVICE_STATE_DISCONNECTED:
self.btnConnect.setTitle("", forState: UIControlState.Normal)
case LE_DEVICE_STATE_DISCONNECTED:
self.btnConnect.setTitle("", forState: UIControlState.Normal)
default:
self.btnConnect.setTitle("", forState: UIControlState.Normal)
}
Run Code Online (Sandbox Code Playgroud)
如果Objective-C枚举被定义为
typedef NS_ENUM(NSInteger, LE_DEVICE_STATE) {
LE_DEVICE_STATE_DISCONNECTED=0,
LE_DEVICE_STATE_CONNECTING,
LE_DEVICE_STATE_CONNECTED,
LE_DEVICE_STATE_UPDATING_FIRMWARE
};
Run Code Online (Sandbox Code Playgroud)
然后它作为Swift导入enum,你可以做到
switch(theDevice.state) {
case .DISCONNECTED:
// ...
}
Run Code Online (Sandbox Code Playgroud)
如果你必须保持它
enum LE_DEVICE_STATE
{
LE_DEVICE_STATE_DISCONNECTED=0,
LE_DEVICE_STATE_CONNECTING,
LE_DEVICE_STATE_CONNECTED,
LE_DEVICE_STATE_UPDATING_FIRMWARE
};
Run Code Online (Sandbox Code Playgroud)
然后将其作为a导入struct,您可以将其与.value以下内容进行比较:
switch(theDevice.state.value) {
case LE_DEVICE_STATE_DISCONNECTED.value:
// ...;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1618 次 |
| 最近记录: |