gpt4 book ai didi

ios - TableView 错误 fatal error : Index out of range when loading file

转载 作者:搜寻专家 更新时间:2023-11-01 07:08:06 25 4
gpt4 key购买 nike

我正在尝试将 url 路径加载到我的 tableview 中,为 quicklook 框架做准备

使用下面的代码从 .document 中获取刚创建时为空的 url

var fileURLs = [NSURL]()

然后

private func prepareFileURLS() {
let csvFile = (FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)).last! as URL
if FileManager.default.fileExists(atPath: csvFile.path) {
fileURLs.append(csvFile as NSURL)
print(fileURLs)
}
}

然后使用下面的代码为标签命名

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let objectIdentifier = "ObjectsTableViewCell"

guard let cell = tableView.dequeueReusableCell(withIdentifier: objectIdentifier, for: indexPath) as? ObjectsTableViewCell else {
fatalError("The dequeued cell is not an instance of ObjectsTableViewCell")
}

//quickview
// Fetches the appropriate object for the data source layout
let currentFileParts = extractAndBreakFilenameInComponents(fileURL: fileURLs[indexPath.row])

cell.nameLabel.text = currentFileParts.fileName
//cell.photoImageView.image = cur.photo
//quickview
cell.descriptionLabel.text = getFileTypeFromFileExtension(fileExtension: currentFileParts.fileExtension)

return cell
}

并使用下面的方法将导致错误的路径分解为字符串

private func extractAndBreakFilenameInComponents(fileURL: NSURL) -> (fileName: String, fileExtension: String) {
// Break the NSURL path into its components and create a new array with those components.
let fileURLParts = fileURL.path!.components(separatedBy: "/")

// Get the file name from the last position of the array above.
let fileName = fileURLParts.last

// Break the file name into its components based on the period symbol (".").
let filenameParts = fileName?.components(separatedBy: ".")

// Return a tuple.
return (filenameParts![0], filenameParts![1]) --> Thread 1: EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0)
}

fatal error :索引超出范围我做错了什么?

最佳答案

非常明显的错误。您正在尝试访问超出 NSURL 数组 fileUrls 范围的索引。通过您的代码,我看到一个可能导致此类错误的问题。

如您所知,您在代码的开头初始化了一个空数组。然后,在您的 private func prepareFileURLS() 中,您通过将此语句附加到您的 NSURLS 来填充您的数组 fileURLs.append(csvFile as NSURL)。问题是你真的完成了你的数组吗?您的代码是否通过了您的 if 语句if FileManager.default.fileExists(atPath: csvFile.path)我鼓励您打印 fileURLs 数组以查看它包含的内容及其长度。

然后你的问题将在你的 private func extractAndBreakFilenameInComponents(fileURL: NSURL) -> (fileName: String, fileExtension: String) 中传播,并带有此语句 return (filenameParts![0 ], filenameParts![1]).由于您的初始数组 fileURLs 不包含您使用未设置的感叹号 filenameParts 展开的任何内容,并且没有值 (=nil) 导致您的 fatal error 。

关于ios - TableView 错误 fatal error : Index out of range when loading file,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46863774/

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