我正在尝试创建一个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变量并在按下按钮的事件上初始化它。上述方法有效,但我正在寻找一些更清晰/正确的实现。 谢谢
答案 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()
值,稍后您可以在按钮事件上实例化它。