增量录制的音频文件名

时间:2016-07-29 02:52:06

标签: ios swift xcode swift2

Xcode 7.3.1,Swift 2

我的视图控制器中有以下代码行,用于设置录制音频的文件名。虽然每个文件都有一个唯一的名称,但我真的希望它更短,但更独特。如果文件名已经存在,我想将文件名增加1。

我不确定正确查看这个术语的正确术语,所以我希望你们中的一个能指出我正确的方向。

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

3 个答案:

答案 0 :(得分:2)

repeat循环将执行:

var index = 0
var audioFileURL: NSURL!

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

答案 1 :(得分:1)

您可以使用NSDefault继续运行I​​D。即使应用程序已终止,它也会永久存储在您的应用中。

例如,我在这里使用一个带静态函数的类:

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)          
        }
    }
}

所以在你的控制器中可以简单地调用

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

答案 2 :(得分:1)

每个音频文件都有一个唯一的名称,每次都有日期字符串。

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")