3

私はC4で、押すと両方の形が変わる3つの別々のボタンで構成されるプログラムを作成しています。次のように、ボタンごとに一連のメソッドを作成すると、次のようになります。

@implementation MyButton

-(void)methodA {
    C4Log(@"methodA");
    [button1 ellipse:CGRectMake(centerPos.x - buttonWidth/2.0f, 80, buttonWidth, buttonHeight)];
}

-(void)methodB {
    C4Log(@"methodB");
    [button2 ellipse:CGRectMake(centerPos.x - buttonWidth/2.0f, centerPos.y - buttonHeight/2.0f, buttonWidth, buttonHeight)];
}

-(void)methodC{
    C4Log(@"methodC");
    [button3 ellipse:CGRectMake(centerPos.x - buttonWidth/2.0f, canvasHeight - 280, buttonWidth, buttonHeight)];
}

@end

...そしてキャンバスでそれらを呼び出します...

[button1 listenFor:@"touchesBegan" fromObject:button1 andRunMethod:@"methodA"];
[button2 listenFor:@"touchesBegan" fromObject:button2 andRunMethod:@"methodB"];
[button3 listenFor:@"touchesBegan" fromObject:button3 andRunMethod:@"methodC"];

...私が得るのは、宣言されていない識別子エラーの束だけです。私は何が間違っているのですか?

4

1 に答える 1

2

MyButton.h ファイルで定義した変数のコピーを確認する必要がありますが、エラーとコードからわかる限り、次の行は ivar を呼び出しています。

[button1 ellipse:CGRectMake(centerPos.x - buttonWidth/2.0f, 80, buttonWidth, buttonHeight)];

ivar centerPos、buttonWidth、および buttonHeight を .h ファイルで定義する必要があります。それらのいずれかがそこで宣言されていない場合、この種のエラーが発生します。

于 2012-04-20T21:59:46.390 に答える