iOS/iOS 기본기
[iOS] Helper object / Delegate 동작 방식 / Protocol
you90100
2019. 11. 24. 17:13
Cocoa Framework
-
목적에 맞게 확장해야 할 기존 객체가 많음
-
ex) TableView의 subclass를 만드는 대신에, 간단하게 TableView에 helper object를 주면 됨.
Delegate
-
delegate outlet이 helper object를 가리키도록 설정
UITableView
-
dataSource라는 helper object가 있음
- UITableDataSource의 informal protocol을 준수해야함.
Delegate 동작 방식
객체가 delegate 메서드를 구현하면 Cocoa framework가 그 메서드 호출
NSObject에 아래 함수 가지고 있음
- (BOOL)respondsToSelector:(SEL)aSelector; // aSelector 메서드 존재 시 YES return
// delegate가 메서드를 구현했는지 확인
if([delegate respondsToSelector:@selector(tableView:shouldSelectRow:)]) {
// 메서드 실행
ok = [delegate tableView:self shouldSelectRow:rowIndex];
}
Protocol
java에서의 interface (약속!!!!)
- protocol: method 정의
- implement: class에서 사용