@objc란?

zoe·2021년 11월 5일
0

Swift

목록 보기
2/4

*@objc를 붙이는 이유?
Swift4부터는 Selector 타입으로 전달할 메소드를 작성할 때 반드시 @objc 어트리뷰트를 붙여주어야 한다. 이는 Objective-C와의 호환성을 위한 것으로, Swift에서 정의한 메소드를 Objective-C에서도 인식할 수 있게 해준다.

@objc 키워드가 붙은 메서드도 일반 메서드 처럼 사용할 수 있다

아샌이 알려주셨다
Notification을 사용하면서 노티피케이션을 받았을 때 실행할 메서드를 selector에 적어줘야한다.
이때 #selector에 들어갈 메서드는 @objc 키워드를 붙여줘야 한다. 나는 이 메서드가 #selector 전용인 줄 알았다. 따라서 일반 메서드처럼 사용할 수 없다고 생각했는데, 아니었다.

https://s3.ap-northeast-2.amazonaws.com/media.yagom-academy.kr/resources/6152efbaccd9ef11a51aee4f/6184b544a8de9c225ae0aee6.png

위 사진을 보면 @objc키워드가 붙은 refreshStockLabele() 메서드를
1. viewDidLoad에서
2. notification의 selector로

사용하고 있다.
이렇게 작성함으로서 중복되는 코드를 없애고, 재사용성을 높일 수 있었다.

profile
개발하면서 마주친 문제들을 정리하는 공간입니다.

0개의 댓글