woong's

IOS Xcode Swift Delegate 사용하기 본문

Develop/IOS

IOS Xcode Swift Delegate 사용하기

dlsdnd345 2016. 3. 23. 20:00
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

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에 업로드 해보려 합니다. 

Git IOS Delegate Sample







'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