2011-09-26 42 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

@詹姆斯不太好!類方法中的'self'代表Class對象,並且確實可以使用。 – Yuji

+0

良好的研究。我將更新我的答案 –

相關問題