ios - How to Use Constants in Swift: AVAudioSessionInterruptionNotification -
this working code in swift. issue i'm using uint
intermediary type.
func handleinterruption(notification: nsnotification) { let interruptiontype = notification.userinfo?[avaudiosessioninterruptiontypekey] as! uint if (interruptiontype == avaudiosessioninterruptiontype.began.rawvalue) { // started } else if (interruptiontype == avaudiosessioninterruptiontype.ended.rawvalue) { // ended let interruptionoption = notification.userinfo?[avaudiosessioninterruptionoptionkey] as! uint if interruptionoption == avaudiosessioninterruptionoptions.optionshouldresume.rawvalue { // resume! } } }
is there better way?
this approach similar matt's, due changes swift 3 (mainly userinfo
being [anyhashable : any]
), can make our code little more "swifty" (no switching on rawvalue
or casting anyobject
, etc.):
func handleinterruption(notification: notification) { guard let userinfo = notification.userinfo, let interruptiontyperawvalue = userinfo[avaudiosessioninterruptiontypekey] as? uint, let interruptiontype = avaudiosessioninterruptiontype(rawvalue: interruptiontyperawvalue) else { return } switch interruptiontype { case .began: print("interruption began") case .ended: print("interruption ended") } }
Comments
Post a Comment