【发布时间】:2018-12-31 19:01:46
【问题描述】:
我正在创建一个录音应用程序,并声明了一个空数组来存储所有文件的名称。
var recordingTitles: [String] = []
当我启动应用程序时,我有一个函数可以检查文件管理器中已经存储了哪些文件并返回文件数量,以便在 collectionView 中显示正确数量的单元格。
override func viewDidLoad() {
super.viewDidLoad()
getNumberOfRecordings()
}
// Get number of actual recording files stored in the File Manager Directory
func getNumberOfRecordings() {
let directoryUrl = getDirectory()
do {
contentsOfFileManager = try myFileManager.contentsOfDirectory(at: directoryUrl, includingPropertiesForKeys: [URLResourceKey(rawValue: recordingsKey)], options: .skipsHiddenFiles)
} catch let error {
print(error.localizedDescription)
}
numberOfRecordings = contentsOfFileManager.count
}
我想获取文件的名称并将它们分配给“recordingTitles”数组,以便为每个单元格显示正确的标题。我已经尝试阅读File Manager 的 Apple 文档,但还没有找到解决方案。提前感谢您的帮助!
【问题讨论】:
-
你现在得到什么输出?一个空列表?出错了?
-
感谢您的帮助@skylerl。
recordingTitles数组一开始是空的,因此当应用程序尝试根据文件管理器目录中当前的文件数加载标题时,我得到一个“索引超出范围”。我的getNumberOfRecordings()函数经历了从文件管理器获取 URL 数组的过程,但我不确定如何仅获取文件名并将它们转换为字符串数组以分配给recordingTitles。
标签: arrays swift nsfilemanager