如何在viewDidLoad()Swift2中初始化变量

时间:2016-07-20 05:43:23

标签: ios swift2

我正在尝试创建一个stopWatch应用程序作为学习swift的一部分。来自Java我很难弄清楚如何初始化变量。 viewcontroller的相关代码:

var timerRunning = false

var timer: NSTimer = NSTimer() //first initialization I want to remove this initialization and leave it as nil


override func viewDidLoad() {
    super.viewDidLoad()
// second initialization
    timer = NSTimer.scheduledTimerWithTimeInterval(1, target: self, selector: #selector(ViewController.timeChanged), userInfo: nil, repeats: true)
}

func timeChanged(){
    print("1 second")
}

我面临的问题是 timer 变量的双重初始化,我认为这是多余的,不能设置为nil。我的目标是在一些函数中使用timer变量并在按下按钮的事件上初始化它。上述方法有效,但我正在寻找一些更清晰/正确的实现。 谢谢

1 个答案:

答案 0 :(得分:1)

将您的计时器变量声明为可选,以便最初它具有 #include <iostream> using namespace std; class A { public : A () { cout << "A()" <<endl; } }; class B : virtual A{ public : B () { cout << "B()" << endl; } }; class C : virtual B{ public : C () { cout << "C()" << endl; } }; Case (1) ======== class D : public A, public B, public C { }; int main() { D d; return 0; } OUTPUT : A() B() A() B() C() Case (2) ======== class D : public C, public B, public A { }; int main() { D d; return 0; } OUTPUT : A() B() C() B() A() Case (3) ======== class D : public B, public A, public C { }; int main() { D d; return 0; } OUTPUT : A() B() B() A() C() 值,稍后您可以在按钮事件上实例化它。