2017-04-01 15 views
-2

ボタンを押すと変数の内容が変更されるので、関数を作成したいと思います。関数は呼び出されますが、内部変数は使用できません。クラス関数内の変数の使用に関する問題(スイフトプレイグラウンド)

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 

ボタンが表示され、その都度、私はそれをタップする(aを始めること0だったので)、より高い数が1から始まる、プリントアウトされます。これはあなたのコード変更aことができることを証明します。

関連する問題