2011-06-24 56 views
0

我有(我假設)調用另一個班級的一般問題。打電話給其他班級不會執行

其他CCLayer召喚:

MyLayer *myLayer = [MyLayer node]; 
[myLayer methodName]; 

這是在 'myLayer' 的方法實現:

-(void) methodName 
{ 
    NSLog(@"methodName gets called"); // works 
    [mySprite runAction:[CCBlink actionWithDuration:1.0 blinks:5]]; // works not 
} 

上 'mySprite上' 的動作不工作(即類內調用時) ,但似乎存在 問題,與此層類有關的「權限」或「層級」問題妨礙了從外部執行命令 。

因爲我是Objective-C的初學者,對我來說這是一種'神祕'。 我很感激任何幫助或對此的見解,這對許多新手會有所幫助。

謝謝!

BTW:

@interface 

CCSprite *mySprite; 

@property (nonatomic,retain) CCSprite *mySprite; 

@implementation 

@synthesize mySprite; 


mySprite = [CCSprite spriteWithSpriteFrameName:@"mySprite.png"]; 
+0

是否檢查'mySprite'不是'nil'? – albertamg

+0

是的,正如我從內部提到它正在工作 – user813921

+0

當你說它不工作,你的意思是它崩潰?請注意,在最後一行代碼中,由於您不是使用該屬性,因此您不保留'spriteWithSpriteFrameName:'返回的值,因此您直接訪問後備伊娃。 – albertamg

回答

0

的功能在你的@interface聲明,以便它可以從類的外部調用?

@interface 

CCSprite *mySprite; 

@property (nonatomic,retain) CCSprite *mySprite; 

-(void)methodName; 
+0

還有什麼 - 像我寫的是NSLog正在執行 - 如果我不會在界面中聲明該函數? - 你可以看到它不是一個類方法 - 它是一個實例方法 - 但是,謝謝!從上面看我的第二條評論。 – user813921

+0

你能告訴我們更多的代碼,然後試圖找出你做錯了什麼 – glogic

+0

好 - 你從哪裏需要更多的代碼? – user813921

相關問題