2011-09-26 3 views

답변

7

self인스턴스 현재 개체의 인스턴스를 참조하는 데 사용되는 변수입니다.

등급 수준 방법 +(void)... 여기에서 self은 의미가 없습니다. 공유 인스턴스를 사용하거나 해당 클래스의 인스턴스를 메소드에 전달하십시오.

+ (void) run:(Action)action on:(MyClass*) instance after:(int) seconds 
{ 
    [instance run:action after:seconds repeat:NO]; 
} 

편집

내 의견 제시 self 클래스 수준의 맥락에서 의미가 않음을 지적하지만, 클래스 자체를 의미합니다.

[MyClass run:action after:seconds repeat:NO]; 

당신이 목표로해야합니다 :

[myClassInstance run:action after:seconds repeat:NO]; 
+4

내가 자기 클래스 메소드에 의미가 있습니까 생각 즉, 다음과 같습니다 메서드를 호출하려고했던 의미 할 것입니다. 메서드가 호출되고있는 클래스를 참조합니다. 자세한 내용은 http://stackoverflow.com/questions/6325453/why-is-self-allowed-in-static-context-in-objective-c를 참조하십시오. –

+3

@James not quite! 클래스 메소드의 'self'는 Class 객체를 나타내며 실제로 사용될 수 있습니다. – Yuji

+0

좋은 연구. 내 대답을 업데이트 할게 –