Swift - #selector란?
Swift - #selector란?
#selector란?
#selector는 런타임에 특정 메서드를 호출할 수 있도록 참조를 전달하는 문법임.
구문
1
#selector(type.method)
#selector는 Objective-C에서 사용하던 문법이기 때문에 가리키는 메서드 앞에는@objc어노테이션을 붙여야함.
사용 예시
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
import UIKit
class ViewController: UIViewController {
weak var timer: Timer?
var number: Int = 0
override func viewDidLoad() {
super.viewDidLoad()
}
@IBAction func btnTapped(_ sender: UIButton) {
timer?.invalidate()
timer = Timer.scheduledTimer(
timeInterval: 1.0,
target: self,
selector: #selector(ViewController.exampleSelector),
userInfo: nil,
repeats: true
) // #selector로 지정한 메서드를 1초마다 실행시킴
}
@objc func exampleSelector(){
if number < 60{
print("1초 지남")
number += 1
}else{
print("끝남")
timer?.invalidate()
}
}
}
This post is licensed under CC BY 4.0 by the author.