#selector의 함수에서 매개변수를 사용할 수 없는 이유
매개변수 사용하기
하지만 실제로 그 버튼을 누르면
number 5
인쇄되지 않음number 4527816368
인쇄class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
let button = UIButton(type: .system)
button.setTitle("Click me", for: .normal)
button.addTarget(self, action: #selector(buttonTapped), for: .touchUpInside)
button.translatesAutoresizingMaskIntoConstraints = false
view.addSubview(button)
button.centerXAnchor.constraint(equalTo: view.centerXAnchor).isActive = true
button.centerYAnchor.constraint(equalTo: view.centerYAnchor).isActive = true
}
@objc func buttonTapped(number: Int = 5) {
print("number", number) // number 4527816368
}
}
addTarget()의 첫 번째 매개변수
func buttonTapped()
다음과 같이 수정하여 매개 변수를 더욱 상세하게 이해하도록 하겠습니다.@objc func buttonTapped(first: Any) {
print("first", first)
}
버튼을 클릭합니다.이런 물건이 프린트되었다
UIButton
자체가 인쇄된 것 같아요.문장 첫머리의
4527816368
, 되돌아오는 UIButton
가 Int
로 변환됨<UIButton>
→ 4527816368
이런 숫자가 되돌아왔어요.addTarget()의 두 번째 매개변수
다시 한 번 해 보고 두 번째 매개 변수를 더해라
@objc func buttonTapped(first: Any, second: Any) {
print("second", second)
}
이번에는 터치스크린 사건도 있었던 것 같아요.
총결산
addTarget()
에서 사용#selector()
자기 파라미터가 제한된 것 같아요.UIButton
UIEvent
@objc func buttonTapped(button: UIButton, event: UIEvent) {
print(button)
print(event)
}
결론
상황에 따라
최소
addTarget()
#selector()
시간 매개 변수 사용 불가
Reference
이 문제에 관하여(#selector의 함수에서 매개변수를 사용할 수 없는 이유), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/ianchen0419/articles/6223b822826efc텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)