无法将类型“ SKTexture”的值转换为预期的参数类型“ Int”;使用textureNamed(“ ...”)

时间:2019-10-28 20:23:17

标签: ios swift xcode

我正在关注iOS应用的游戏教程。但是存在版本问题,因为本教程使用Xcode 8和swift 3制作。我使用Xcode 11和最新的swift版本。无论如何,我设法解决了我遇到的所有问题,所有人都接受了这个问题:

        //setup sprites for animation
        _Sprites.append(_Atlas.textureNamed("text"))
        _Sprites.append(_Atlas.textureNamed("text"))
        _Sprites.append(_Atlas.textureNamed("text"))
        _Sprites.append(_Atlas.textureNamed("text"))
        ...

在这些代码行之后,所有代码都有相同的错误:无法将类型“ SKTexture”的值转换为预期的参数类型“ Int”

我不知道为什么,因为它显然想要一个字符串(用于精灵的名称),而且,当我尝试这样做时:

        _Sprites.append(_Atlas.textureNamed(Int("text")))
        ...

它给了我这个错误:无法转换类型为'Int?'的值。到预期的参数类型'String'
有谁知道我为什么会有这个问题?

1 个答案:

答案 0 :(得分:2)

看起来_Sprites的类型为[Int],而不是[SKTexture]。您正在尝试附加SKTexture,并且错误提示:

  

无法将类型“ SKTexture”的值转换为预期的参数类型“ Int”

意味着Swift可以看到您正在尝试在期望SKTexture的位置设置Int


这样更改代码(您的代码可能会略有不同):

_Sprites = [Int]()

收件人:

_Sprites = [SKTexture]()