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

Popular posts from this blog

powershell Start-Process exit code -1073741502 when used with Credential from a windows service environment -

twig - Using Twigbridge in a Laravel 5.1 Package -

c# - LINQ join Entities from HashSet's, Join vs Dictionary vs HashSet performance -