Computer Science
탄탄한 기반 실력을 위한
전공과 이론 지식 모음
Today I Learned!
배웠으면 기록을 해야지
TIL 사진
Flutter 사진
Flutter로 모바일까지
거꾸로캠퍼스 코딩랩 Flutter 앱개발 강사
스파르타코딩클럽 즉문즉답 튜터
카카오테크캠퍼스 3기 학습코치
프로필 사진
박성민
임베디드 세계에
발을 들인 박치기 공룡
임베디드 사진
EMBEDDED SYSTEM
임베디드 SW와 HW, 이론부터 실전까지
ALGORITHM
알고리즘 해결 전략 기록
🎓
중앙대학교 소프트웨어학부
텔레칩스 차량용 임베디드 스쿨 3기
애플 개발자 아카데미 1기
깃허브 사진
GitHub
프로젝트 모아보기
Instagram
인스타그램 사진

Develop/iOS 개발

[iOS 앱 개발 - Swift] Target-Action Design Pattern

sm_amoled 2019. 8. 10. 16:31

처음 보는 Target-Action 디자인 패턴을 공부해봤습니다. 물론 잘 사용하려면 어렵겠지만, 그 내용 자체는 크게 어렵지 않은 것 같네요. 한 객체에 target을 연결해두고, 지정한 Event가 발생하면 타겟이 특정한 액션을 취한다는 게 요지인 듯 하네요. 아래에서 예시로 쭉 설명해볼게요!


타겟-액션

말 그대로, 타겟을 정하고 액션을 취하는 방법입니다. ㅋㅋㅋ 원하는 객체에서 어떤 Event가 발생했을 때, 누가 무엇을 수행할지 ( 무엇을 타겟으로 하고, 어떤 액션을 취할지 )를 미리 등록을 해두면 해당 Event가 발생할 때 마다 타겟에게 메세지를 전달해서 액션을 취하게 하는 방법입니다.

인자로 전달되는 값들의 문법적인 부분은 아직 이해가 힘드네요 ㅜㅜ

위 예시의 코드를 보면 dataPicker에 타겟과 액션을 등록하는데, UIControl에서 값이 바뀔때마다 self의 didDataPickerValueChanged 메서드를 호출하는 코드입니다.

타겟으로 self를 지정해줬고, 액션으로 didDataPickerValueChanged라는 메서드를 등록해두고, 특정 Event로 값 변화를 지정해줬어요. 아래의 프로젝트 예시를 보면 좀 더 잘 이해가 될거예요.


타겟-액션 사용 예시

 

스토리보드에 보이는 것 처럼, 뷰 위에 DatePicker와 Label을 하나씩 올려뒀습니다. DatePicker에서 값을 고르는데, 값이 바뀔때마다 ViewController에 메세지를 보내서 Label을 업데이트 하도록 메세지를 보내는 코드를 작성할 것입니다.

 

 

먼저,viewDidLoad()에서addTarget()으로 어떤 event가 발생하면 누구에게 어떤 액션을 취하도록 할지 결정해줍니다.

액션은 아래에서 func didDataPickerValueChanged()로 작성해줬어요. datePicker에서 date 값을 가져와서 포멧을 지정해서 Label을 업데이트 하는 코드입니다.
이를 빌드해서 실행해주면 다음과 같은 결과를 얻을 수 있습니다.

 

 


위 내용들은 edwith의 부스트코스 iOS 앱개발 강의에서 Target-Action 에 대한 공부를 하면서 작성한 내용과 예시입니다. 강의 전체가 무료이고, 네이버 아이디로도 이용할 수 있기 때문에 부담없이 강의를 들을 수 있으니, 관심있는 분이 있으면 한번 들어가서 확인해보시기 바랍니다!

확실히 예제를 이용해 프로젝트를 만들어보면서 공부를 하니까 쉽고 빠르게 Swift와 iOS 개발에 대한 지식이 늘어가는 것 같네요 ㅋㅋㅋ

 

https://www.edwith.org/boostcourse-ios/lecture/16854/

 

[LECTURE] 1) Target-Action 디자인 패턴이란? : edwith

Target-Action 디자인 패턴 iOS 환경에서 자주 사용되는 디자인 패턴 중 하나인 Target-Action 디자인 패턴에 대해 알아봅니다. 학습 목표 1. Target-A... - 부스트코스

www.edwith.org

 

320x100