私は別のクラスへの呼び出しで一般的な問題を抱えています。他のクラスへの呼び出しは実行されません
他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"];
「mySprite」が「nil」ではないことを確認しましたか? – albertamg
はい、私はそれの中から言及したように動作しています – user813921
あなたはそれが動作していないと言うとき、それはクラッシュを意味するのですか?最後のコード行では、あなたが**プロパティ**を使用していない**のでspriteWithSpriteFrameName:によって返された値を保持していないことに注意してください、あなたは直接バッキングivarにアクセスしています。 – albertamg