はコードです:http://min.us/mWdMO0n14コール別のクラスからメソッド揺れが検出されたときにHERE
私はOBJのCの初心者ですので、私はかなり検索しましたが、私を解決することができる何かを発見していません問題。
私はCalculatorViewController.hとの.m、その後CalculatorBrain.hのand.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.
}
}
私はエラーが出るので、私は「クラスメソッドを+ clearEverythingOnShakeGesture見つからないデフォルトはid型を返すために、」[brain clearEverythingOnShakeGesture];
を呼び出すするかどうかはわかりません。しかし、クラスメソッドにすると、内部の変数はインスタンス変数になり、別のエラーが発生します。どんな助けでも大歓迎です。
2つの提案:1.メソッドを静的にします。 2. [self.brain clearEverythingOnShakeGesture]を使用します。 – David
あなたは[self.brain clearEverythingOnShakeGesture]を試しましたか? ?どのような "脳"が何であるかについてのあいまいさを解消するために、私はこれを次のように合成するでしょう:@synthesize brain = _brain; 。 –