2011-06-24 2 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の初心者なので、私には「謎」があります。 これについて何か助けや洞察をいただければ幸いです。多くの初心者にとって参考になるでしょう。

ありがとうございます!ところで

:それはクラスの外から呼び出すことができるように

@interface 

CCSprite *mySprite; 

@property (nonatomic,retain) CCSprite *mySprite; 

@implementation 

@synthesize mySprite; 


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

「mySprite」が「nil」ではないことを確認しましたか? – albertamg

+0

はい、私はそれの中から言及したように動作しています – user813921

+0

あなたはそれが動作していないと言うとき、それはクラッシュを意味するのですか?最後のコード行では、あなたが**プロパティ**を使用していない**のでspriteWithSpriteFrameName:によって返された値を保持していないことに注意してください、あなたは直接バッキングivarにアクセスしています。 – albertamg

答えて

0

はあなたの@interfaceに宣言された関数のですか?

@interface 

CCSprite *mySprite; 

@property (nonatomic,retain) CCSprite *mySprite; 

-(void)methodName; 
+0

どのように私が書いたように、NSLogが実行されているのですか?私がインターフェイスでその関数を宣言していないとしたら? - あなたが見ることができるように、それはクラスメソッドではありません - それはインスタンスメソッドです - しかし、ありがとう!私の2番目のコメントを上から見てください。 – user813921

+0

もっとコードを表示して、間違ったことを理解してください。 – glogic

+0

allright - どこからコードが必要ですか? – user813921

関連する問題