2
使用Xcode。「在非成員函數中,'this'在objective-c上下文中的使用無效?
在此代碼(func在接口中聲明)中,告訴subj錯誤,站在字符串上'self'。
+ (void) run: (Action) action after: (int) seconds
{
[self run:action after:seconds repeat:NO];
}
什麼......?
使用Xcode。「在非成員函數中,'this'在objective-c上下文中的使用無效?
在此代碼(func在接口中聲明)中,告訴subj錯誤,站在字符串上'self'。
+ (void) run: (Action) action after: (int) seconds
{
[self run:action after:seconds repeat:NO];
}
什麼......?
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];
我相信自己確實有類方法的意思。它指的是該方法被調用的類。詳情請參閱http://stackoverflow.com/questions/6325453/why-is-self-allowed-in-static-context-in-objective-c。 –
@詹姆斯不太好!類方法中的'self'代表Class對象,並且確實可以使用。 – Yuji
良好的研究。我將更新我的答案 –