<< 오브젝티브 C : 상속, NSObject, 프로토콜, id형 >>
1. 상속
- 상속을 이용하여 다른 클래스로부터 변수나 메서드를 이어받을 수 있습니다.
사용예)
@interface Animal:NSObject
- Animal 클래스는 NSObject 클래스를 상속하고 있습니다.
- 자바와 마찬가지로 상속원 클래스는 하나이다. (다중 상속 안됨)
- 부모클래스에서 변수는 @public, @private, @protected 로 지정할 수 있다.
사용예) @public int a;
2. NSObject
- 루트클래스
- 주요 메서드
1) (id)alloc : 인스턴스를 생성합니다. (클래스 메서드)
2) -(id)init : 생성한 인스턴스를 초기화 합니다.
3) -(id)self : 자기 자신의 인스턴스를 반환합니다.
4) -(id)copy : 인스턴스의 복사를 반환합니다.
5) (BOOL)isEqual(id)object : 오브젝트를 비교합니다.
3) 프로토콜
- 자바에서 인터페이스와 동일
- 클래스에서 메서드나 프로퍼티의 처리를 강제하는 장치
- 사용예)
@protocal FruitsInfo
@require
-(void)showBrand;
@optional
-(void)showCalorie;
@end
- @require는 반드시 처리 필요, @optional은 선택사항
-사용예2) FruitsInfo 프로토콜을 채택
@interface Orange: NSObject <FruitsInfo>
{
:
}
-(void)showCalorie;
@end
- 사용예3) 형식 프로토콜에 준거한다. showBrand 메서드를 구현.
@implementation Orange
-(void) showBrand
{
:
}
-(void)showCalorie
{
:
}
- 델리게이트 :다른 오브젝트에게 처리를 맡기는것, 프로토콜은 다른 오브젝트에서의 호출에 따라 자신이 만든 메서드에서 독자적인 처리를 수행하는 경우에 사용
예를 들어 "키가 눌려졌다", "마우스가 클릭 되었다" 같은 독자적인 처리를 수행하기 위해 사용
- 프로토콜은 상속할 수 있고, 다중 상속을 지원한다.
사용예) 상속
@protocal A
:
@end
@protocal B <A>
:
@end
프로토콜 B는 프로토콜 A를 상속한다.
사용예) 다중상속, 프로토콜 D는 프로토콜 A,B,C를 채택합니다.
@protocal D <A, B, C>
:
@end
-프로토콜의 메서드가 인스턴스에서 모두 처리되었는지 확인하려면 conformsToProtocal: 메서드 사용
사용예) object : 검사할 오브젝트 변수, Protocol1 : 검사할 프로토콜
if( object conformsToProtocal:@protocal(Protocol1))
{
:
}
올바르게 준거가 일어난경우(프로토콜의 메서드가 인스턴스에서 모두 처리된 경우)는 YES를 반환
4) id형
'iOS' 카테고리의 다른 글
iOS 앱 아이콘 만들기 (0) | 2019.05.07 |
---|---|
ios swift 키패드, 키보드 닫기, 숨기기 (0) | 2019.03.26 |
아이폰 오버스크롤 및 웹뷰 바운스 막기 (0) | 2015.05.29 |
iOS 인증 및 배포 절차(in-house 방식) (0) | 2015.05.22 |
iOS 앱 강좌 (0) | 2014.06.12 |