swift - 将字符串文本转换为变量名?

标签 swift function sprite-kit

我试图在上一个问题中解释这一点,但失败了......

func setPiece(square: String, piece: String) {

   if (piece == "whiteKing") {A1Square.texture = whiteKing}

}

这很好用,但问题是我需要大量的代码来处理所有的方 block 和棋子,我想要的是这个......

  func setPiece(square: String, piece: String) {

       if (piece == "whiteKing") {square.texture = whiteKing}

    }

“A1Square”被传递到函数中...

我想将字符串“A1Square”.texture = WhiteKing 转换为 A1Square.texture = WhiteKing。有办法做到这一点吗?

最佳答案

Azurlake 的想法是正确的,尝试向函数传递一个 A1Square 类的对象,而不是 String

如果您不想这样做,并且A1Square是一个节点,则可以使用SpriteKit方法childNodeWithName:。如果您在方 block 的父节点上调用此函数并使用方 block 名称的字符串,它将返回该名称的子节点。
例如,如果您将方 block 添加到 self 中,您可以说:

let node: SKSpriteNode = self.childNodeWithName(square) as SKSpriteNode
if (piece == "whiteKing") {node.texture = whiteKing}

关于swift - 将字符串文本转换为变量名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32188265/

相关文章:

swift - 使用 Amplify 将现有 AWS Cognito 用户池集成到 iOS 项目中

arrays - 声明一个字典数组,其中每个键的值是另一个数组 (Swift)

objective-c - 渲染/快照 SpriteKit 场景到 NSImage

ios - 检查应用程序是否是在 iPad 上打开的 iPhone 应用程序

c++ - 函数指针是 C++ 中的函数对象吗?

c - 如何将函数输出(数组)分配给c中的另一个函数?

string - 未知长度的字符返回函数

swift - 如何在一组同名的 SKSpriteNode 上运行 SKAction?

swift - SpriteKit 聚光灯效果

ios - 使用 YouTube API 获取 YouTube 视频的标题