-2

質問があります。誰かが私を助けてくれたら最高です。クラス myObject とクラス HelloWorldLayer があります。HelloWorld では、myObjectX でメソッド doSomething を呼び出したいと考えています。

しかし、

[myObjectX doSomething];

それは働きたくありません。

この方法で解決策を知っている人はいますか??

残りのコードを変更せずに myObjectX で doSomething を呼び出さなければならない方法。

どうもありがとう。

myObject.h
@interface myObject : CCSprite {
}

-(void)doSomething;
@end

myObject.m
@implementation myObject

-(void)doSomething
{
    NSLog(@"test");
}
@end

HelloWorldLayer.h
@interface HelloWorldLayer : CCLayerGKLeaderboardViewControllerDelegate>
{
    CCSprite *myObjectX;
}
-(void)test;
@end

HelloWorldLayer.m
@implementation HelloWorldLayer
-(void)test
{
    myObjectX = [[myObject alloc]init];
    [myObjectX doSomething];
}
@end
4

2 に答える 2

0

変化する

myObject *myObjectX = [[myObject1 alloc]init];

の中へ

myObject1 *myObjectX = [[myObject1 alloc]init];

あなたのandクラス-(void)doSomething;で宣言されているためです。myObject1myObject2

それはまさにメッセージが言っていることです:あなたは-(void)doSomething;あなたのmyObjectクラスにノーを持っています。

または、次を追加できます。

@interface myObject:CCSprite
{

}
-(void)doSomething;    // Add here and implement in your .m
@end

お役に立てれば。

編集 :

あなたはこれを間違っていました:

@interface HelloWorldLayer : CCLayerGKLeaderboardViewControllerDelegate>
{
    CCSprite *myObjectX;
}
-(void)test;
@end

これで修正してください:

@interface HelloWorldLayer : myObject <CCLayerGKLeaderboardViewControllerDelegate>
{
}
@end

アプリオリから継承しているため、 でdoSomething使用できます。HelloWorldLayermyObject

于 2013-05-16T14:54:58.447 に答える