iOS 에서 NSObject 의 두 가지 의미:클래스 와 프로 토 콜 상세 설명

2567 단어 iosnsobject협의
머리말
프로 토 콜 에서는 무슨 뜻 입 니까?자 류 는 부 류 를 물 려 받 았 는데 자 류 는 부 류 가 지 키 는 협 의 를 지 킬 수 있 습 니까?
NSObject 프로 토 콜 을 준수 하지만 헤더 파일 에서 만 설명 합 니 다.컴 파 일 러 는 인 스 턴 스 변 수 를 자동 으로 생 성하 지 않 습 니 다.getter 와 setter 방법 을 스스로 처리 해 야 합 니 다.
NS/CF/CC/CA/UI 이 접두사 들 은 각각 어떤 의미 입 니까?
CF 코코아 Fundation 프레임 워 크
CG CoreGraphics 프레임 워 크
CA Coreanimatigon 프레임 워 크
UI UIkit 프레임 워 크
다음은 더 이상 할 말 이 없 으 니 상세 한 소 개 를 살 펴 봅 시다.
1.구분:클래스 의 NSObject 와 프로 토 콜 의 NSObject
iOS 개발 에서 애플 이 제공 하 는 일부 시스템 클래스 는 NSObject 의 하위 클래스 에 속 합 니 다.예 를 들 어 UIColor 류 의 정 의 는 다음 과 같 습 니 다.

UIColor
또는 사용자 정의 클래스 도 NSObject 에서 계승 합 니 다.예 를 들 어 다음 그림 과 같 습 니 다.

사용자 정의 클래스 의 부모 클래스
그러나 NSObject 는 기본 클래스 뿐만 아니 라 협의의 의미 도 있 습 니 다.우 리 는 루트 프로 토 콜 이 라 고 할 수 있 습 니 다.예 를 들 어 다음 그림 과 같 습 니 다.

NSObject 프로 토 콜
사실 NSObject 클래스 의 정 의 를 통 해 알 수 있 듯 이 NSObject 클래스 자체 가 NSObject 프로 토 콜 을 따 릅 니 다.아래 그림 과 같 습 니 다.

NSObject
2.프로 토 콜 NSObject 의 사용법
NSObject 프로 토 콜 의 정의

일반 프로 토 콜 의 용법

@protocol MyProtocol
- (void)foo; 
@end
루트 프로 토 콜 의 용법 을 계승 하 다.

@protocol MyProtocol<NSObject> 
- (void)foo; 
@end
다 상속 적 용법
UITextField 에서 계승 할 하위 클래스 MyTextFeild 를 사용자 정의 하 는 동시에 에이전트 MyTextFeildDelegate 의 속성 을 다음 과 같이 정의 합 니 다.

@protocol MyTextFieldDelegate <NSObject>
//...

@property (nonatomic, weak) id <MyTextFeildDelegate> delegate;
이 때 잘못 보고 할 수 있 습 니 다.이 delegate 는 아버지 와 같은 delegate 의 협의 와 충돌 하기 때 문 입 니 다.하나의 해결 방법 은 프로 토 콜 의 다 중 계승 을 이용 하 는 것 이다.사용자 정의 프로 토 콜 을 부모 클래스 에서 계승 하 는 것 이다.

@protocol MyTextFieldDelegate <NSObject,UITextFieldDelegate>

//...
@property (nonatomic, weak) id <MyTextFeildDelegate> delegate;
3.확장
OC 의 클래스 는 원래 다 상속 을 지원 하지 않 지만 어떤 면접 관 들 은 iOS 에서 다 상속 을 어떻게 실현 하 느 냐 고 묻는다.운행 시의 방법 외 에 또 하 나 는 협의의 다 중 계승 을 통 해 이 루어 지 는 것 이다.
총결산
이상 은 이 글 의 전체 내용 입 니 다.본 논문 의 내용 이 여러분 의 학습 이나 업무 에 어느 정도 참고 학습 가치 가 있 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 댓 글 을 남 겨 주 셔 서 저희 에 대한 지지 에 감 사 드 립 니 다.

좋은 웹페이지 즐겨찾기