- 동적 타입 : 코드 작성 시 타입을 명시하지 않은 것을 의미한다.
- 변수나 메소드 정의 시 int, char 와 같은 정적 타입이 아닌 "id" 로 사용한다.
- 포인터 형으로 * 를 사용하지 않는다.
예시) id dynamiicTypeVar; -(id) dynamicTypeMethod1:(int)arg; -(void) dynamicTypeMethod2:(id)arg; - 정적 타입 : 코드 작성 시 타입을 명시하는 것으로 동적 타입과 반대되는 개념이다.
예시) BOOL boolVar; int intVar; NSString *strVar; - 바인딩(Binding) : 참조와 구현이 연결
- 포인터 변수가 객체와 연결
- 메소드 호출 코드와 메소드 구현부가 연결
- 정적 바인딩(Static binding) : 컴파일 시간에 결정
- 동적 바인딩(Dynamic binding) : 런타임(Runtime)에 결정되며, Objectiive-C에서 사용
- 객체 생성 메소드
- 객체 생성이란? 클래스를 사용하기 위해서 별도의 메모리 공간을 할당해주는 것을 의미한다.
- 객체 생성방법 : [[클래스_이름 alloc] init];
- alloc : 객체를 생성하는 메소드
- init : 객체를 초기화하는 메소드
- 객체 생성 메소드에서 동작해야하는 코드는 init 메소드를 재정의하는 것이다.
- 팩토리 메소드 : 객체 생성 디자인 패턴으로 객체를 생성하고 반환하는 코드로 클래스 메소드이다. 메소드의 이름은 클래스의 이름으로 시작한다.