ios - Can't stop audioRecorder -


here's part of code:

class audiorecordercontroller: uiviewcontroller, avaudiorecorderdelegate {

var audiorecorder: avaudiorecorder?  func audiorecordingpath() -> nsurl {      let filemanager = nsfilemanager()      let documentsfolderurl = filemanager.urlfordirectory(.documentdirectory, indomain: .userdomainmask, appropriateforurl: nil, create: false, error: nil)      return documentsfolderurl!.urlbyappendingpathcomponent("recording.m4a")  }   func audiorecordingsettings() -> nsdictionary {...}  func startrecordingaudio() {      var error: nserror?      let audiorecordingurl = self.audiorecordingpath()      audiorecorder = avaudiorecorder(url: audiorecordingurl, settings: audiorecordingsettings() [nsobject: anyobject], error: &error)      if let recorder = audiorecorder {          recorder.delegate = self          if recorder.preparetorecord() && recorder.record() {              println("capture succeed!")              let delayinseconds = 5.0             let delayinnanoseconds = dispatch_time(dispatch_time_now, int64(delayinseconds * double(nsec_per_sec)))             dispatch_after(delayinnanoseconds, dispatch_get_main_queue(), {                 [weak self] in                 self!.audiorecorder!.stop()                 //it breaks here.                  })          }      } } 

it printed "capture succeed" in console, crashed error "unexpectedly found nil while unwrapping optional value". what's problem last line of code?

have tried replacing

self!.audiorecorder!.stop()

with using unwrapped constant

recorder.stop()


Comments

Popular posts from this blog

PHP DOM loadHTML() method unusual warning -

python - How to create jsonb index using GIN on SQLAlchemy? -

c# - TransactionScope not rolling back although no complete() is called -