Swift: переопределить AVAudioSession recordPermission - PullRequest
1 голос
/ 22 марта 2019

Я пытаюсь проверить следующий код

switch AVAudioSession.sharedInstance().recordPermission {
     case AVAudioSession.RecordPermission.granted:
        if !self.recording {
          fallthrough
        }
        label = device.localizedName
     case AVAudioSession.RecordPermission.denied:
        fallthrough
     case AVAudioSession.RecordPermission.undetermined:
        label = ""
}

Для проверки этого кода мне нужно иметь возможность смоделировать recordPermission. Swift API для recordPermission описывается следующим образом:

/* Returns an enum indicating whether the user has granted or denied permission to record, or has not been asked */
@available(iOS 8.0, *)
open var recordPermission: AVAudioSession.RecordPermission { get }

Я создал класс Mock под названием AVAudioSessionMock. Я пытаюсь переопределить свойство recordPermission следующим образом

import AVFoundation

public class AVAudioSessionMock: AVAudioSession {
  private let permission: AVAudioSession.RecordPermission
  public override var recordPermission: AVAudioSession.RecordPermission {
    get {
      return self.permission
    }
  }

  init(permission: AVAudioSession.RecordPermission){
    self.permission = permission
  }
}

Однако компилятор показывает мне ошибку Property does not override any property from its superclass.
Есть идеи, что я делаю не так?

Редактировать

Я обновил свою версию swift до 4.2, и больше не было ошибок.

...