Haru's 개발 블로그

[Objective-C] 동적 타입과 바인딩 본문

IOS/Objective-C

[Objective-C] 동적 타입과 바인딩

Haru_29 2023. 3. 9. 21:08
  • 정적 타입: 코드 작성시 타입을 명시
    • BOOL boolVar;
    • int intVar;
    • NSString *strVar;
  • 동적 타입: 코드 작성시 타입을 명시하지 않음
  • id 사용, 포인터 형이고 *을 사용하지 않음
id dyanmicTypeVar;
-(void)dynamicTypeMethod:(id)arg;
  • 바인딩: 참조와 구현이 연결
    • 포인터 변수가 객체와 연결
    • 메소드 호출 코드와 메소드 구현부 연결
  • 정적 바인딩: 컴파일 시간에 결정
  • 동적 바인딩: 런타임(runtime)
  • Objective-C -> 동적 바인딩 언어

 

  • 포인터가 가르키는 객체의 클래스 알아내기
-(Class)superclass;
-(Class)class;
  • 클래스에서 생성된 객체 알아내기
- (BOOL)isMemberOfClass:(Class)aClass;
- (BOOL)isKindOfClass:(Class)aClass;
  • Rectangle 클래스 객체인지 알아내기
if([rect isMemberOfClass:[Rectangle class]) {
	NSLog(@"Rectangle 클래스");
}
else {
	NSLog(@"Rectangle 클래스 아님");
}
Comments