본문 바로가기

Thinking/Study

Objective-C (3rd Edition)(Developer's Library) _ 7 장

728x90
7장. More on Classes

- Synthesized Accessor Methods
Objective-C 2.0(from 2006, http://en.wikipedia.org/wiki/Objective-C)  부터 settter 와 getter 메소드들(접근자)을 컴파일러가 자동적으로 생성하게 할 수 있다.

@interface  섹션에서 인스턴스 변수를 선언하고, @property 를 추가한다. 그리고,  @implementaion 섹션에서 @synthesize 를 사용한다. 
예를 들어 @synthesize x; 를 선언할 경우, getter 메소드 x 와 setter 메소드 setX: 를 자동적으로 합성(synthesize) 한다.

- Accessing Properties Using the dot Operator
Objective-C 2.0 부터 속성에 접근할 수 있는 좀더 편한 방법을 dot(.) 연산자 지원.
[myFraction numerator]
=
myFraction.numerator


instance.property = value 형태가 가능

[myFraction setNumerator: 1];
=
myFraction.numerator = 1;
 
- Multiple Arguments to Methods
여러개의 인자가 필요한 경우, 각 인자들을 콜론(:)으로 차례대로 나타낸다.
[myFraction setTo: 1 over: 3];
- (void) setTo: (int) n over: (int) d
{
    numerator = n;
    denominator = d;
}
위의 경우 메소드 이름은 setTo:over: 이다.

--  Methods Without Arguments Names
메소드 이름을 생성할 때 인자 이름은 실제 선택이다. 
- (int) set: (int) n: (int) d;
메소드 이름은 set:: 이다. 
[aFraction set: 1 : 3];
좋은 프로그래밍 스타일은 아님.

-  Local Variables
 메소드의 실행동안만 존재하는 변수로 선언된 메소드 내에서만 접근되는 변수.

-- Method Arguments
메소드는 인자의 복사복을 처리하기 때문에, 메소드에 전달된 원래의 값은 변경할 수 없다.

-- The static Keyword
로컬변수의 값이 메소드가 여러번 호출되도 값을 유지할 수 있도록(retain) static 키워드로 변수 앞에 둔다.

- The Self keyword
 현재 메시지의 리시버(receiver)인 오브젝트를 참조할때 self 키워드 사용.

- Allocationg and Returning Objects from Methods
 메소드에서 오브젝트를 할당하거나 반환(return) 할때는 메모리 leak 를 조심.