모든 인스턴스 변수는 Object-C에서 private 인 이유로 값을 가져오거나 설정하기 위해서는 접근자를 사용해야 함.

Object-C 2.0에서 점( . )을 이용한 접근이 추가되었음. (마치 public인 것처럼)

다른 객체지향언어에서도 그렇지만 개인적으로 setValue, getValue 형태의 접근자를 설정해 사용하는 것이 좋다고 생각함

 

Object-C 기존 방법

[objectA setTitle:@"안녕하이"];
NSString *title = [objectA title];

objectA에 setTitle이라는 접근자 사용

 

Object-C 2.0 에서 추가된 방법

objectA.title = @"안녕하이";
NSString *title = objectA.title;

*접근자: 변수에 접근하기 위한 메소드

기본 호출 방법

[Object method];
[Object method:input];

Object : 오브젝트 명
method : 매소드
input : 입력 매개변수

 

값을 돌려 받을 때

output = [Object method];
output = [Object method:input];

객체를 돌려 받을 때

id newStringObject = [NSString string];
NSString *newStringObject = [NSString string];

둘은 같은 의미, 명확한 경우는 id를 사용하는 것도 나쁘지 않으나, 실수를 증가시킬 우려가 있음.

id : 모든 객체, 어떤 것이든 대체 가능함을 의미, 본래 포인터 타입이므로 *이 불필요
NSString : 클래스
string : 객체를 반환하는 NSString의 메소드

 

메시지를 중복으로 보내고 싶은 경우

(C언어의 function1(function2( )); 와 같이)

[objectA method:[objectB method]];

스택구조상 objectB가 먼저 수행된 후 objectA 수행

 

복수의 매개변수 사용

[objectA method: objectB method: objectC]

objectA가 objectB와 objectC를 가지고 수행, 복수개의 매개변수일 때는 : 로 구분

+ Recent posts