2016-07-29 10 views
0

Xcode 7.3.1, Swift 2Erhöhungsschritte Recorded Audio Dateiname

Ich habe die folgende Codezeile in meinen Ansicht-Controller, der die Dateinamen der aufgezeichneten Audio-Sets. Obwohl jede Datei einen eindeutigen Namen hat, würde ich es gerne kürzer haben, aber einzigartig. Ich möchte den Dateinamen um eins erhöhen, wenn er bereits existiert.

Ich bin nicht sicher, die richtige Terminologie, um dies richtig zu suchen, so dass ich hoffe, einer von Ihnen könnte mir in die richtige Richtung zeigen.

// Set the default audio file 
    let audioFileURL = directoryURL.URLByAppendingPathComponent("PWAC_" + NSUUID().UUIDString + ".m4a") 

Antwort

2

A repeat Schleife tun:

var index = 0 
var audioFileURL: NSURL! 

repeat { 
    index += 1 
    audioFileURL = directoryURL.URLByAppendingPathComponent("PWAC_\(index).m4a") 
} while NSFileManager.defaultManager().fileExistsAtPath(audioFileURL.path!) 
+0

Dies ist ein einfacher Ansatz und funktioniert ganz gut. Vielen Dank – Bill

1

Sie NSDefault id Laufen zu halten verwenden können. Es wird dauerhaft in Ihrer App gespeichert, obwohl die Apps beendet sind.

Zum Beispiel hier verwende ich eine Klasse mit statischer Funktion:

class FileUtil { 

    let key = "runningId" 

    static func getRunningID() { 
     let prefs = NSUserDefaults.standardUserDefaults() 
     // set initial value if first time 

     if var runningid = prefs.valueForKey(key) as? Int{ 
      print("current id: \(runningid)") 
      // increase by 1 and return 
      runningid += 1 
      // dont forget to save back after increment 
      prefs.setInteger(runningid, forKey: key) 

      return runningid; 
     }else{   
      // not set yet, then set the init value 
      prefs.setInteger(1, forKey: key)   
     } 
    } 
} 

Also in Ihrem Controller könnte einfach anrufen

let audioFileURL = directoryURL.URLByAppendingPathComponent("PWAC_" + FileUtil. getRunningID() + ".m4a") 
1

Jede Ihrer Audio-Datei jedes Mal einen eindeutigen Namen mit Datum Zeichenfolge hat.

let date = NSDate() 

let dateFormatter = NSDateFormatter() 
dateFormatter.dateStyle = .MediumStyle 
dateFormatter.dateFormat = "yyyy-MM-ddHHmmssSSS" 
let string = dateFormatter.stringFromDate(date) 

audioFileURL = directoryURL.URLByAppendingPathComponent("PWAC_\(string).m4a")