*@objc를 붙이는 이유?
Swift4부터는 Selector 타입으로 전달할 메소드를 작성할 때 반드시 @objc 어트리뷰트를 붙여주어야 한다. 이는 Objective-C와의 호환성을 위한 것으로, Swift에서 정의한 메소드를 Objective-C에서도 인식할 수 있게 해준다.
아샌이 알려주셨다
Notification을 사용하면서 노티피케이션을 받았을 때 실행할 메서드를 selector에 적어줘야한다.
이때 #selector에 들어갈 메서드는 @objc 키워드를 붙여줘야 한다. 나는 이 메서드가 #selector 전용인 줄 알았다. 따라서 일반 메서드처럼 사용할 수 없다고 생각했는데, 아니었다.
위 사진을 보면 @objc키워드가 붙은 refreshStockLabele()
메서드를
1. viewDidLoad에서
2. notification의 selector로
사용하고 있다.
이렇게 작성함으로서 중복되는 코드를 없애고, 재사용성을 높일 수 있었다.