Я пытаюсь проверить следующий код
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, и больше не было ошибок.