首页 > 解决方案 > 如何将 Y 分配给 X?

问题描述

我不知道如何将变量的值复制到 Swift 中的另一个变量中,python 中的示例代码是

def assignVariable():
    x=1
    y=x
    return y
RESULT 1

当我这样做时,它似乎在 Swift 中不起作用。有什么解决办法还是我做错了什么?

编辑:问题出在

var originalCount=countDown

它给了我Use of unresolved identifier 'countDown',但是当我按字面意思分配它时,它可以工作。这是我的快速代码

import Cocoa

class MainWindow: NSWindowController {
    var hitCount = 0
    var started:Bool = false
    var timer = 10
    var colorList: [NSColor] = [ NSColor.black,NSColor.blue,NSColor.brown,NSColor.cyan,NSColor.darkGray,NSColor.gray,NSColor.green,NSColor.lightGray,NSColor.magenta,NSColor.orange,NSColor.purple,NSColor.red,NSColor.white,NSColor.yellow]
    @IBOutlet weak var button1: NSButton!
    @IBOutlet weak var scrubber1: NSScrubber!
    @IBOutlet weak var display: NSTextField!

    override func windowDidLoad() {
        super.windowDidLoad()
        // Implement this method to handle any initialization after your window controller's window has been loaded from its nib file.
    }
    var countdown=10
    var originalCount=countDown
    //(countdown,originalCount) = (10,10) //it works if i use this instead
    func startGame(){
        if(countDown>0 || started==true){
            display.stringValue=String(countDown)
            countDown-=1
            let seconds = 1.0
                 DispatchQueue.main.asyncAfter(deadline: .now() + seconds) {
                    self.startGame()
                 }
        }else{
            display.stringValue="Done "+String(hitCount)+" Taps in " + String(originalCount) + "Tap to RESET"
            started=false
            countDown=10;
        }
    }
    @IBAction func labelPress(_ sender: Any) {
        display.stringValue="__RESET__"
        hitCount=0
        countDown=10
        started=false
    }
    @IBAction func buttonPressed(_ sender: Any) {
        if started==false{
            startGame()
        }
        button1.bezelColor = colorList[Int.random(in: 0..<colorList.count)]
        started=true
        button1.title=String(hitCount)
        hitCount+=1
    }
}

标签: swiftxcode

解决方案


您不能在班级的顶层用另一个变量初始化一个变量。查看您的代码,我认为 originalCount 不需要是属性,startGame()而是将其移到内部并使其成为局部变量并使用let,因为它没有改变

var countdown=10

func startGame(){
    let originalCount = countDown
    if(countDown>0 || started==true){
        ...
}

推荐阅读