셀렉터(selector)

썹스·2022년 12월 21일
0

Swift 문법

목록 보기
68/68

셀렉터(selector)

셀렉터(selector)는 메서드의 주소를 통해 특정 메서드를 가리키는 개념입니다. (셀렉터는 메서드를 가리키기만 할 뿐, 메서드를 실행하는 것이 아닙니다.)

셀렉터(selector)의 경우에는 Objective-C 언어의 문법이기 때문에 가리키고 싶은 함수 앞에 @objc 어트리뷰트를 작성하여 사용합니다.


📌 셀렉터(selector)의 문법

셀렉터를 사용할 때는 #selector(클래스명.메서드) 형태로 작성해야 합니다.

일반 메서드와 계산속성 메서드의 경우에는 셀렉터를 사용하는 방법이 조금 다릅니다. (계산 속성의 경우에는 자세하게 작성해야 함)

✅ 셀렉터(selector)의 문법 표현

class Man{
    var name: String
    var age: Int
   
    @objc var agePlus: Int{   // 가리키고 싶은 메서드 앞에 @objc 어트리뷰트를 작성
        get{
            return age + 1
        }
        set{
            age = newValue
        }
    }
   
    init(name: String, age: Int){
        self.name = name
        self.age = age
    }
   
    @objc func hello(){     // 가리키고 싶은 메서드 앞에 @objc 어트리뷰트를 작성
        print("안녕 내 이름은 \(self.name)")
    }
}

var kim = Man(name: "김철수", age: 25)


//일반 메서드
#selector(Man.hello)  // hello 

//계산 속성 메서드
#selector(getter: Man.agePlus)  // agePlus
#selector(setter: Man.agePlus)  // setAgePlus:

😮 위의 코드만 보면 셀렉터(selector) 문법의 필요성을 찾을 수 없습니다. 하지만 실무에서는 셀렉터 문법을 많이 사용합니다.


📌 셀렉터(selector)의 문법 사용

Xcode에서 UI을 표현하는 방법은 크게 2가지가 있습니다.

  • 스토리보드(Storyboard)를 사용하여 UI 작성
  • 코드(Code)를 사용하여 UI 작성

스토리보드(Storyboard)를 사용하여 UI 기능(메서드)을 구현한 경우에는 @IBAction에 의해 내부적으로 UI의 기능(메서드)이 자동으로 연결되었습니다.

하지만 코드(Code)를 사용하여 UI 기능(메서드)을 구현한 경우에는 @IBAction를 사용할 수 없기 때문에 내부적으로 UI의 기능(메서드)을 가리키는 셀렉터(selector) 문법이 필요합니다.

✅ 셀렉터(selector)의 문법 사용

Button.addTarget(self, action: #selector(버튼을 누를 시 사용될 메서드), for: .touchUpInside)

// .touchUpInside : 버튼 누름 이벤트
profile
응애 나 코린이(비트코인X 코딩O)

0개의 댓글