arrays - 如何访问我的一个类中的数组?
问题描述
我有一个名为 myGV 的结构,旨在保存一些全局变量。虽然一切正常,但我无法弄清楚如何通过所有属性访问数组。这就是我正在尝试的:
myGV.guessBar = GuessBar : SKSpriteNode
GuessBar 有 6 个子类型:GuessSlot : SKSpriteNode
. GuessBar
将实例存储在数组中。
这是代码GuessBar
:
class GuessBar : SKSpriteNode {
var guessSlots : [GuessSlot] = []
init(color: SKColor, size: CGSize) {
super.init(texture: nil, color: color, size: size)
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
}
这是我在guessBar中填充数组的代码
func createGuessBar(color: SKColor, size: CGSize, factor: Int) -> GuessBar
{
let myGuessBar = GuessBar(color : color, size: size)
//other unrelated code
for x in 0...5 {
let mGuessSlot = GuessSlot(color: .clear, size: CGSize(width: iFactor, height: rFactor), width: myGuessBar.size.width, iFactor: x, guessBarRef: myGuessBar)
myGuessBar.guessSlots.append(mGuessSlot)
}
//other unrelated code
return myGuessBar
}
在我看来,一切都运行良好。如果我在其中展开guessSlots,debugger
它会列出每个值。我只是无法获得正确的语法,通过调试器中的最后一行,从我的 main structure 访问该数组myGV
。
解决方案
都是我的错。它也在调试器中。我的 SKSpriteNode 应该被声明为子类,而不是 SKSpriteNode。这就是我无法访问数组的原因。该数组存在于我的子类中。
推荐阅读
- internet-explorer - 在 DNS / 类似级别检测 Internet Explorer?
- arrays - 为什么在初始化指针时必须将数组转换为 type[]?
- c# - C# 在多个 if(s) 中嵌套多个 try(s) 然后执行 catch(s) 之后?
- c++ - 在这种情况下是 clang 错误、gcc 错误还是两者都错误 - 用成员指针抛弃 constness
- php - 使用 Xdebug 进行远程调试会导致 PHP 脚本执行停止
- sql - 在 Hive 中将时间戳 (HH:mm:ss) 转换为秒的任何更好的方法
- javascript - 在加载时反应渲染,但在异步调用完成时不更新
- javascript - 我可以直接从 HTML 将 HTML 元素传递给 oninput 属性中定义的函数吗?
- python - 在python中for循环期间使用.pause的代码n次
- r - R从文本中删除停用词而不将数据标记和转换为列表