gpt4 book ai didi

Swift - 使用 NSSearchPathForDirectoriesInDomains 将数据存储在目录中,但目录总是更改?

转载 作者:行者123 更新时间:2023-11-28 11:20:09 32 4
gpt4 key购买 nike

我有一个录音机应用程序,其中录制的声音是这样存储的:

let dirPath = NSSearchPathForDirectoriesInDomains(.DocumentDirectory,.UserDomainMask,true)[0] as String  
var pathArray = [dirPath, recordingName]
let filePath = NSURL.fileURLWithPathComponents(pathArray)

所有文件路径 URL 都存储在一个数组中(放入 NSUserDefaults)以便于访问。

如果文件与录制时在同一运行中播放,我可以播放这些文件,但是打开和关闭模拟器备份将导致文件路径错误(因为 app-id 文件夹位于 ~/Library/Developer/CoreSimulator/Devices/Device-ID/data/Container/Data/Application/app-id-folder/Documents/filename.wav 将更改名称)。每次运行应用程序时,如何更改包含文件 URL 的数组以具有更新的应用程序 ID 文件夹名称? (目前它只是一个字符串数组,必要时会转换为 NSURL 类型)。或者更简单,是否可以保存到用户主目录或不需要处理更改文件夹名称的地方?

最佳答案

我通过创建一个仅包含文件名的 NSUserDefaults 数组(如 [audio1.wav,audio2.wav])并在每个新的 viewdidload 上调用 NSSearchPathForDirectoriesInDomains 来解决它,然后将两者组合成一个新的字符串。像这样(下面的代码将调用数组中的第二个音频文件):

let dirPath = NSSearchPathForDirectoriesInDomains(.DocumentDirectory,.UserDomainMask,true)[0] as String
var filesNamesWithWav = defaults?.objectForKey("filesNamesWithWav") as NSArray
var newpath = "\(dirPath)/" + "\(filesNamesWithWav[1])"

关于Swift - 使用 NSSearchPathForDirectoriesInDomains 将数据存储在目录中,但目录总是更改?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28923114/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com