gpt4 book ai didi

ios - 数组自发清空

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

我目前正在开发一个应用程序,由于某种原因数组自发清空。

我首先在文件顶部提到它:

let scaleTypes = [String]()

然后我填充它(我通过运行数组的 println 来验证它是否被填充):

let scaleTypes = scaleTypesDict.valueForKey("Types")! as! [String]
println(scaleTypes.count)

当我访问数组时(填充 UITableViewCells 的内容时):

cell.textLabel!.text = scaleTypes[indexPath.row]

我收到 fatal error :数组索引超出范围。在访问数组之前,我已经直接对数组计数进行了 println,发现它本身已清空(打印 0)。该文件的其他地方未提及该数组。我在此应用程序的另一个 View Controller 中使用了类似的变量名称,但我非常怀疑这是导致问题的原因。有人有什么东西吗?

编辑:如果查看整个源代码有帮助,可以在这里找到:https://gitlab.carson-greene.com/cgreene/scales-ios/tree/dev/Scale%20Randomizer .不幸的是,我没有很好地评论事情;被警告。发生此错误的文件是 SRSettingsViewController.swift 文件。

最佳答案

您正在声明两个不同的变量,称为 scaleTypes

第一个是成员变量,因为你用 let 声明然后初始化为空,所以永远不会包含任何内容。

然后,在您的 viewDidLoad 中声明一个名为 scaleTypes局部变量。您将值放入其中,但它仅在您的 viewDidLoad 函数运行时存在,它会屏蔽成员变量。当该函数退出时,它就会消失。

在其他函数的其他地方,当您访问 scaleTypes 时,您正在访问该空成员变量。

如果您改为使用 var 声明您的成员变量,然后将 let 放在 viewDidLoad 中赋值的前面,您将将值分配给您希望的成员变量。

关于ios - 数组自发清空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30361846/

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