swift - 在类型 'meow' 上使用实例成员 'Cat' 您是否打算改为使用类型 'Cat' 的值?

标签 swift

这是让我“我该怎么办?”的问题之一

这是我遇到的编译器错误:

在“SKFootmanSprite”类型上使用实例成员“getAttackUPSequence_Frames”您是否打算改用“SKFootmanSprite”类型的值?

我正在为我的所有 _Frames 变量获取此信息。 以下是我的 SKFootmanSprite 的公共(public)属性:

// ATTACK
static let attackUp_Frames = getAttackUPSequence_Frames()
static let attackDown_Frames: [SKTexture] = getAttackDOWNSequence_Frames()
static let attackLeft_Frames: [SKTexture] = getAttackLEFTSequence_Frames()
static let attackRight_Frames: [SKTexture] = getAttackRIGHTSequence_Frames()

static let attackUpRight_Frames: [SKTexture] = getAttackUPRIGHTSequence_Frames()
static let attackUpLeft_Frames: [SKTexture] = getAttackUPLEFTSequence_Frames()

static let attackDownLeft_Frames: [SKTexture] = getAttackDOWNLEFTSequence_Frames()
static let attackDownRight_Frames: [SKTexture] = getAttackDOWNRIGHTSequence_Frames()

这是获得攻击顺序的函数之一:

func getAttackUPSequence_Frames() -> [SKTexture] {
    var textures = [SKTexture]()
    for var i = 1; i < 7; i+=1 {
        let imageName = "footman_attack_up0" + String(i)
        textures.append(SKTexture(imageNamed: imageName))
    }
    let imageName = "footman_up_stand"
    textures.append(SKTexture(imageNamed: imageName))
    return textures
}

我希望我的 Sprite 框架使用 let 而不是 var。 (苹果的官方 Swift 教科书非常强调使用 let 而不是 var 来处理此类事情。)

最佳答案

您的问题是您的 let 变量是静态的,但您的函数不是。

您应该尝试将函数 getAttackUPSequence 设为静态。

该错误意味着您正在尝试从实例“外部”访问实例成员(函数)。

关于swift - 在类型 'meow' 上使用实例成员 'Cat' 您是否打算改为使用类型 'Cat' 的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38449764/

相关文章:

swift - 如何在没有数千个请求的情况下不断检查服务器上的某些内容 (Parse) 是否已更改?

ios - Spritekit制作的游戏在真机上第一次玩声音很低?

ios - 终止我的应用程序后如何保持与 mqtt 代理的连接(ios,Swift)

SwiftUI:@State 值在异步网络请求后不会更新

ios - RxSwift 重新加载表格 View

macos - setResourceValue NSURLTagNamesKey 错误

ios - 如何让带有嵌入式 UITableView 的 ContainerView 随着 tableView 单元格数量的变化而更新高度约束

ios - 在两个依赖框架中链接静态库时重新定义模块

swift - 如何在 Swift 中重置 slider 值?

ios - 如何使用 AutoLayout 在一个 UITableView 中设置具有两个原型(prototype)的 UITableViewCell 的 AutoHeight?