ObjectiveC Symbole etc
- Objective-C 기호와 용어 정리
[] 사용법
->메서드를 사용하기 위해 중괄호를 사용한다.
방법은
[object method]; -> [객체 메소드]
[object methodWithInput:input]; -> [객체 메소드:인자]
로 쓰이며,
output = [object methodWithOutput];
output = [object methodWithInputAndOutput:input];
처럼 값을 돌려준다.
중복된 [] 사용법
1번에서 봤듯이 객체의 메소드를 호출하기 위해 []을 사용한다.
그렇다면 함수호출결과를 다시 호출하는 형태도 가능할까?
예를 들어 C의 경우 func1(func2()); 이런 형태 말이다.
당연히 가능하다.
[NSString stringWithFormat:[prefs format]];
다만 2개 이상 호출하게 되면 복잡해서 추천하지는 않는다.
id(아이디)
id myObject = [NSString string];
[NSString string] 가 어떤 타입을 리턴해도 해당 타입으로 전환하여 저장해준다.
여기서는 당연히 myObject에 NSString 타입으로 저장될 것이다.
원래는 아래와 같이 써야 할것이다.
NSString* myString = [NSString string];
즉 id 는 NSString* 을 나타내는 것이다. id가 포인터를 내장하고 있음을 짐작할 수 있다.
: (콜론)
[]에서 메소드를 호출할때 메소드와 인자 값을 구분해준다.
[myData writeToFile:@"/tmp/log.txt" atomically:NO]; -> [객체 메소드 인자 메소드:인자];
.(dot,닷)
Objective-C 2.0 에서 getter와 setter를 위해 dot 을 사용한다.
photo.caption = @"오늘은좋은날!!";
output = photo.caption;
로 값을 get할 수 있다.
@(골뱅이 또는 at 문자)
문자열 앞이나 Objective-C만의 독특한 지시어를 나타내기 위하여 사용된다.
다시 말해 C와는 다른 것임을 구분하기 위해 쓰이고 있다.
+,-
연산자로도 사용하지만 여기에서는 메소드를 구분하기 위해 썼다.
클래스내에 메소드를 기술할때 +는 클래스 메소드, -는 인스턴스메소드를 가리킨다.