2015-01-22 6 views
2

Я пытаюсь добавить варианты AVAudioSession категории:'|' не постфикса унарный оператор

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

Я также попытался

let options = .MixWithOthers|.DefaultToSpeaker 

Но это дает мне ту же ошибку.

Как объединить эти параметры?

+0

Swift дал мне это с знаком *, поэтому я изменил его и изменил его назад, теперь он работает ... это кажется моя проблема не сразу –

ответ

7

Вы на самом деле нужно пустое пространство вокруг |.

let options = .MixWithOthers | .DefaultToSpeaker 

Кроме того, использование .rawValue, а не .rawValue() (с новейшей Xcode)

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)