ObjectiveC Symbole etc

From 흡혈양파의 인터넷工房
Jump to navigation Jump to search
Objective-C 기호와 용어 정리


출처
http://blog.daum.net/_blog/BlogTypeView.do?blogid=0N45F&articleno=7924267&categoryId=829975&regdt=20111029110024#ajax_history_home


[] 사용법

->메서드를 사용하기 위해 중괄호를 사용한다.

방법은

[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와는 다른 것임을 구분하기 위해 쓰이고 있다.


+,-

연산자로도 사용하지만 여기에서는 메소드를 구분하기 위해 썼다.

클래스내에 메소드를 기술할때 +는 클래스 메소드, -는 인스턴스메소드를 가리킨다.