Swift 2.2에서 selector 사용하기

먼저 objective-c, swift 2.1 이하버전, swift 2.2에서 키보드가 보여지기 직전에 selector로 keyboardWillShow메소드를 호출하는 코드의 차이를 보겠습니다.

1. objective-c에서 사용

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:@"UIKeyboardWillShowNotification" object:nil];
2. swift 2.1 이전에서 사용

NSNotificationCenter.defaultCenter().addObserver(self, selector: "keyboardWillShow:", name: UIKeyboardWillShowNotification, object: nil)
3. swift 2.2 에서 사용

NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(ViewController.keyboardWillShow(_:)), name: UIKeyboardWillShowNotification, object: nil)

swift 2.1 이전에는 문자열로 메소드명을 받아서 생성했기 때문에 오타가 발생하더라도 확인 할수 없었습니다.

2.2 버전부터 #selector를 이용하여 '클래스명.메소드명(_:)'을 사용하도록 바뀌었기 때문에 잘못 사용하더라도 에러가 발생하기 때문에 문제를 찾기 쉬워졌습니다.


Related Posts:

  • App Transport Security iOS9 혹은 OS X 10.11이상에서 유효한 기능이며, 어플이나 웹서비스 간의 안전한 연결을 위해 사용할 수 있습니다. ATS가 활성화 되면 HTTP통신을 할 수 없습니다. 또한 Apple에서 권장하는 요구 사항을 충족하지 않는 연결은 강제로 연결 실패 처리 … Read More
  • Application windows are expected to have a root view controller at the end of application launch에러 코드 Xcode 7 iOS9에서 발생 *** Terminating app due to uncaught exception 'NSInternalInconsistencyException'reason : 'Application windows are expected to… Read More
  • Swift 2.2에서 selector 사용하기먼저 objective-c, swift 2.1 이하버전, swift 2.2에서 키보드가 보여지기 직전에 selector로 keyboardWillShow메소드를 호출하는 코드의 차이를 보겠습니다. 1. objective-c에서 사용 2. swift 2.1 이전에… Read More