'|'不是后缀一元运算符

时间:2015-01-22 18:44:15

标签: swift ios8 avaudiosession

我尝试为AVAudioSession类别添加选项:

let session = AVAudioSession.sharedInstance()
    let options = .MixWithOthers.toRaw()|.DefaultToSpeaker.toRaw()
    if session.setCategory(AVAudioSessionCategoryPlayAndRecord,
      withOptions: options,
      error: &error){
...
}

我也试过

let options = .MixWithOthers|.DefaultToSpeaker

但它给了我同样的错误。

如何组合这些选项?

2 个答案:

答案 0 :(得分:7)

您实际上需要|周围的空格。

let options = .MixWithOthers | .DefaultToSpeaker

此外,使用.rawValue而不是.rawValue()(使用最新的xcode)

答案 1 :(得分:3)

选项的类型为AVAudioSessionCategoryOptions, 但是在

let options = .MixWithOthers | .DefaultToSpeaker

编译器无法从上下文中推断出类型。你可以写

let options = AVAudioSessionCategoryOptions.MixWithOthers | AVAudioSessionCategoryOptions.DefaultToSpeaker

let options : AVAudioSessionCategoryOptions = .MixWithOthers | .DefaultToSpeaker

session.setCategory(AVAudioSessionCategoryPlayAndRecord,
            withOptions: .MixWithOthers | .DefaultToSpeaker , error: &error)