func audioSessionRouteChanged(_ notification: Notification) { let reasonObj = notification.userInfo![AVAudioSessionRouteChangeReasonKey] as! NSNumber if let reason = AVAudioSessionRouteChangeReason(rawValue: reasonObj.uintValue) { switch reason { case .newDeviceAvailable: // (ヘッドセットが差し込まれた) //何もしない break case .oldDeviceUnavailable: //(ヘッドセットが抜かれた) self.timeCountTimer.invalidate() self.timer.invalidate() audioEngine.mainMixerNode.removeTap(onBus: 0) audioEngine.stop() let deleteSong = try!AVAudioRecorder(url: iyahon,settings:recordSetting) deleteSong.deleteRecording() self.dismiss(animated: true, completion: nil) break default: break } } }
上から2行目
1)[AVAudioSessionRouteChangeReasonKey]→”ルートが変更された理由を識別する符号なし整数を含むNSNumberオブジェクト”とありますが、NSNumberオブジェクトがint型,float型,BOOL型などをオブジェクトとして扱いたい場合に使用するのはわかるんですが、それ(NSNumberオブジェクト)をどのように表現して,ルートが変更された理由を識別するのかがわかりません
上から3行目
2)(rawValue: reasonObj.uintValue)→”NSUIntegerオブジェクトとして表される数値オブジェクトの値。必要に応じて変換されます”とありますが、ここでは何を変換しようとしてるのか
参考になるサイトやあるいは説明できる方いらっしゃいましたら嬉しいです