2010-02-12 3 views
2

ObjC 매뉴얼에서이 부분을 건너 뛰지 않았 으면 좋겠지 만 클래스 메서드 중 하나에서 클래스를 참조 할 수 있습니까? PHP에서와 마찬가지로 현재 인스턴스를 참조하는 데 "this"를 사용하고 "self"는 인스턴스의 클래스를 가리키는 반면 ObjC는 "this"가 "self"가되므로 PHP의 "self" ", 하나 있다면?Object C의 클래스 mehod에서 클래스 자체 참조

답변

6

클래스 메서드 내에서 self은 현재 클래스 (클래스의 Class 객체)를 참조합니다. 인스턴스 메서드 내에서 self은 해당 클래스의 현재 인스턴스를 참조합니다.

+0

+1 올바른 답변입니다. –

+0

대단히 고마워, 내가 정확히 필요한 정보였다. (물론 런타임 참조에서 빠져있다.) – karsten

3

self이 개체의 인스턴스 인 경우 [self class]을 사용하여 개체의 클래스를 가져올 수 있습니다.

+0

-1 그는 인스턴스 메서드가 아닌 클래스 메서드에 대해 질문합니다. –

1

모든 Objective-C 메서드는 암시 적으로 self_cmd의 두 매개 변수를 가져옵니다. 메서드 내에서 self은 다른 값을 할당하지 않는 한 메서드를 호출 한 메시지의 수신자입니다. 클래스 메서드에서 수신기는 클래스입니다. 인스턴스 메소드에서 수신자는 인스턴스입니다.