woong's
IOS Xcode Swift Delegate 사용하기 본문
IOS Xcode Swift Delegate 사용하기
IOS 앱을 개발 하다보면 간혹 Delegate 를 사용할때가 있습니다.
Swift는 어떻게 사용하는지 확인해보고 정리해보려고 포스트를 작성합니다.
objectC 에서 사용하던것과 비슷한 형태 인것 같습니다.
1. delegate 를 사용할 Class 에서 protocol 을 정의 하고 호출 합니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | import UIKit protocol ViewDelegate: class { func didFinishTask() } class CallDelegate: NSObject { weak var delegate : ViewDelegate? /** * ViewDelegate call */ func call() { delegate?.didFinishTask() } } | cs |
상단의 protocol 을 정의 했습니다. 정의하고 호출할 callback 함수를 구성합니다.
구성후에 이벤트를 전달해야 할부분은 호출코드를 작성했습니다.
2. delegate 의 이벤트를 받기 위한 Class 에서 Delegate 를 상속, 등록 , 이벤트 수신
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | import UIKit class ViewController: UIViewController , ViewDelegate { override func viewDidLoad() { super.viewDidLoad() initData(); } /** * 데이터 초기화 */ func initData() { let callDelegate = CallDelegate() callDelegate.delegate = self callDelegate.call() } /** * delegate call */ func didFinishTask() { print(">>> didFinishTask") } } | cs |
delegate 를 상속 , 상속을 하면 함수를 구성하라고 에러가 나타납니다.
아래에 didFinishTask 함수를 구성하였고 , Delegate를 호출하기 위해서
Class 생성을 하고 Delegate 호출부분이 있는 함수를 호출했습니다.
위와같이 하면 didFinishTask 에 이벤트가 들어오는것을 확인 할수 있습니다.
git 활동이 없어서 이제 간단한 샘플이라도 git에 업로드 해보려 합니다.
'Develop > IOS' 카테고리의 다른 글
IOS Xcode ObjectC PageViewController 사용하기 (0) | 2016.03.30 |
---|---|
IOS Xcode Swift PageViewController 사용하기 (1) | 2016.03.29 |
IOS Xcode Swift 문법 사용하기 (0) | 2016.03.23 |
Xcode Realm 사용하기 (0) | 2016.03.15 |
Xcode Unit Test 하기 (0) | 2016.03.14 |
Comments