在Swift中间接访问继承成员时的EXC_BAD_ACCESS

时间:2014-09-25 02:02:15

标签: xcode swift

我不知道这是否仍然是Swift中固有的错误,或者如果我出错了,但是这里有。

我有一个用于在iOS应用程序中创建菜单的类(如主菜单和选项菜单),以Swift编码。

public class GameMenuScreen {
    private var _labels: Dictionary<String, SKLabelNode>

    // Getter/Setter indirection
    internal var labels: Dictionary<String, SKLabelNode> {
        get {
            return self._labels
        }
    }

    ...
}

class MainMenu: GameMenuScreen {
    ...
}

我的问题是labels继承了MainMenu,但是当我尝试在方法中访问MainMenu.labels时,它会抛出EXC_BAD_ACCESS。

我的想法是因为对MainMenu.labels的调用已发送到GameMenuScreen,返回值为GameMenuScreen._labels,而不是MainMenu._labels,因为没有GameMenuScreen的实例{1}},访问GameMenuScreen._labels访问未分配的内存。

我想知道我是如何构建这样的,以便对labels的任何调用都指self._labels而不是super._labels

运行Xcode 6.0.1

1 个答案:

答案 0 :(得分:0)

我认为您将以MainMenu()方式访问它的实例。你需要()。如果没有看到完整的代码,不确定这是不是你的问题。你能发布更多吗?