【发布时间】:2016-01-05 16:54:48
【问题描述】:
我正在尝试通过转换我编写的现有 Objective-C 应用程序(流式音频播放器)来学习 Swift。但是,我使用的库没有 Swift 等价物,所以我创建了一个桥接头并成功引用它们。
现在,我正在尝试从其中一个库中打开 enum,但 Swift 只是在抱怨。
为了让事情变得更加混乱(对我来说,可能对你们任何人都没有),一系列 if 块可以正常工作。
这是来自 Objective-C 库的枚举:
typedef enum {
kFsAudioStreamRetrievingURL,
kFsAudioStreamStopped,
kFsAudioStreamBuffering,
kFsAudioStreamPlaying,
kFsAudioStreamPaused,
kFsAudioStreamSeeking,
kFSAudioStreamEndOfFile,
kFsAudioStreamFailed,
kFsAudioStreamRetryingStarted,
kFsAudioStreamRetryingSucceeded,
kFsAudioStreamRetryingFailed,
kFsAudioStreamPlaybackCompleted,
kFsAudioStreamUnknownState
} FSAudioStreamState;
这行得通:
if (state == kFsAudioStreamRetrievingURL) {
}
if (state == kFsAudioStreamStopped) {
}
if (state == kFsAudioStreamBuffering) {
}
但这不起作用:
switch state {
case kFsAudioStreamRetrievingURL:
case kFsAudioStreamStopped:
case kFsAudioStreamBuffering:
break;
}
第二个给我以下错误:
Binary operator '~=' cannot be applied to two 'FSAudioStreamState' operands
如果能帮助我了解更多 Swift,我将不胜感激!
【问题讨论】:
-
请看我的回答,我认为这不是 obj-c 枚举(它是 c/c++ 枚举)。
-
嗨,你转换了吗?
标签: objective-c swift enums switch-statement