협의

프로 토 콜 OC 의 프로 토 콜 은 자바 의 인터페이스(추상 류)에 해당 하 는 것 입 니 다.다만 OC 의 이름 이 더욱 형상 적 입 니 다.왜냐하면 우 리 는 자바 의 인 터 페 이 스 를 배 울 때 실제 인 터 페 이 스 는 계약(프로 토 콜)에 해당 한 다 는 것 을 알 수 있 기 때 문 입 니 다.
@protocol Protocol
@required//실현 해 야 할-(void)eat;
@optional//선택 가능 한-(void)talk;@end
프로 토 콜 의 정의 형식:@protocol 프로 토 콜 이름 <부모 프로 토 콜>정의 방법@end 주:프로 토 콜 을 정의 하 는 키 워드 는@protocol 이 며,프로 토 콜 도 부모 프로 토 콜 을 계승 할 수 있 습 니 다.
프로 토 콜 에서 정의 하 는 방법 은 두 개의 수정자 가 있 습 니 다.@required:이 방법 은 다른 클래스 가 반드시 실현 해 야 한 다 는 것 을 나타 내 는 것 이자 기본 값@optional:이 방법 은 다른 클래스 에 대해 선택 할 수 있 는 것 임 을 나타 내 는 것 입 니 다.이것 은 자바 의 추상 류 와 유사 합 니 다.abstract 수식 이 라면 반드시 실현 해 야 합 니 다.따라서 하나의 프로 토 콜 에@optional 수식 방법 이 없다 면그러면 이 협 의 는 자바 의 인터페이스 에 해당 한다.
//Dog.h//협의////민들레 에 의 해 만들어 진&미소 에 2015/11/5./저작권© 2015 년 하하.All rights reserved.//
#import @interface Dog : NSObject
@end
//Dog.m//협의////민들레 에 의 해 만들어 진&미소 에 2015/11/5./저작권© 2015 년 하하.All rights reserved.//
#import "Dog.h" implementation Dog
-(void)eat{
NSLog(
"개 에 게 먹 이 를 줘!");}-(void)talk{NSLog(@"왕!멍멍!왕!");}@end
//Person.h//협의////민들레 에 의 해 만들어 진 미소 2015/11/5./저작권© 2015 년 하하.All rights reserved.//
#import #import "Protocol.h" @interface Person : NSObject
@end
//Person.m//협의////민들레 에 의 해 만들어 진&미소 에 2015/11/5./저작권© 2015 년 하하.All rights reserved.//
#import "Person.h" implementation Person
-(void)eat{
NSLog(
"얘 들 아,밥 먹 자!");}-(void)talk{NSLog(@"子 曰:");}@end 사용 프로 토 콜 은 간단 합 니 다.계승 클래스(NSObject)뒤에<프로 토 콜 이름>을 사용 하면 됩 니 다.
그리고 우 리 는 실현 류 에서 협의 에서 반드시 실현 해 야 할 방법 을 실현 한다.
여기 에는 respons ToSelector:@selector 방법 이 있 습 니 다.이 방법 은 현재 대상 에서 방법 을 정 의 했 는 지 여 부 를 판단 하 는 역할 을 합 니 다.이 방법 은 유용 합 니 다.자바 에서 우 리 는 반사 로 이 루어 져 야 할 수도 있 습 니 다.
프로 토 콜 은 OC 에서 도 매우 중요 한 개념 이다.Foundation 구조 에서 많은 부분 에서 프로 토 콜 을 사 용 했 는데 사실은 자바 의 추상 류 와 인터페이스 가 매우 비슷 하 다.

좋은 웹페이지 즐겨찾기