コードは次のとおりです:http ://min.us/mWdMO0n14
私はObjCの初心者なので、かなり検索しましたが、問題を解決できるものは見つかりませんでした。
CalculatorViewController.hと.mがあり、次にCalculatorBrain.hと.mがあります(スタンフォード大学の講義)
CalculatorBrain.mには、次のメソッドがあり、すべての変数がCalculatorBrainヘッダーでプライベートとして定義されています。
- (void)clearEverythingOnShakeGesture{
operand = 0;
waitingOperation = @"";
waitingOperand = 0;
}
次に、CalculatorBrain.mで、次のように、揺れを検出するようにすべてを設定しました。一般的な考え方がわかるように、手ぶれ検出の上にいくつかのコードを含めました。
@interface CalculatorViewController()
@property(nonatomic, retain) CalculatorBrain *brain;
@end
@implementation CalculatorViewController
@synthesize brain;
- (CalculatorBrain *)brain {
if (!brain) {
brain = [[CalculatorBrain alloc] init];
}
return brain;
}
-(BOOL)canBecomeFirstResponder{
return YES;
}
-(void)viewDidAppear: (BOOL) animated{
[super viewDidAppear:animated];
[self becomeFirstResponder];
}
- (void)motionBegan:(UIEventSubtype)motion withEvent:(UIEvent *)event {
if (event.subtype == UIEventSubtypeMotionShake)
{
NSLog(@"SHAKE IT!");
[brain clearEverythingOnShakeGesture]; //********** not sure how to call this.
}
}
[brain clearEverythingOnShakeGesture];
「クラスメソッド+clearEverythingOnShakeGestureが見つかりません。デフォルトでタイプIDが返されます」というエラーが表示されるため、呼び出し方法がわかりません。ただし、クラスメソッドにすると、内部の変数はインスタンス変数になり、別のエラーが発生します。どんな助けでも大歓迎です。