2017-04-01 64 views
-2

我想創建一個函數,所以當按下按鈕時,變量的內容會改變。該函數確實被調用,但我不能在其中使用任何外部變量。在類函數中使用變量的問題(Swift Playgrounds)

這是代碼,我遇到的麻煩:

class Responder: NSObject { 
    func pressed(sender: UIButton) { 
     // Can't change the value of "a" here 
    } 
} 

var a: Int = 0 

let responder = Responder() 
let bt = UIButton(frame: CGRect(x: 0.0, y: 0.0, width: 200.0, height: 200.0)) 
bt.addTarget(responder, action: #selector(Responder.pressed), for: .touchUpInside) 

我能做些什麼,使這項工作?

回答

0

確實工作。你可以更改a的值在pressed。我添加代碼以您的pressed方法,如下所示:

import UIKit 
import PlaygroundSupport 

class Responder: NSObject { 
    func pressed(sender: UIButton) { 
     a = a+1 
     print(a) 
    } 
} 
var a: Int = 0 

let responder = Responder() 
let bt = UIButton(frame: CGRect(x: 0.0, y: 0.0, width: 200.0, height: 200.0)) 
bt.addTarget(responder, action: #selector(Responder.pressed), for: .touchUpInside) 
PlaygroundPage.current.liveView = bt 

出現按鈕,每次我點擊它,較高數量的被打印出來,從1開始(因爲a0與開始)。這證明你的代碼可以更改a

相關問題