0

電卓アプリケーションに Xcode 4.6 を使用していますが、3 つのエラーが発生しています。エラーの原因を教えてください。

ここに3つのエラーがあります

オブジェクトタイプ「CalculatorBrain」でプロパティ「pushElement」が見つかりません。

プロパティ 'Enter Pressed' がオブジェクト タイプ CalculatorviewController に見つかりません

プロパティ「操作を実行」がオブジェクトタイプ「CalculatorBrain」で見つかりません

これは、エラーが発生しているコードの一部ですCalculatorviewController.m

- (IBAction)enterPressed:(UIButton*)sender {
    [_Brain.pushElement :self.display.text];       ......first error ....
    userIntheMiddleOfEnteringText= NO; 
}

- (IBAction)operationPressed:(UIButton *)sender {
    if (userIntheMiddleOfEnteringText)
        self.enterPressed;                     ........second error.....

    else {
        double result = [_Brain.performOperation];        ... third error...
        self.display.text=[NSString   stringWithFormat:@"%g",result];
    }

}

CalculatorBrain.mコードは

#import "CalculatorBrain.h"

@implementation CalculatorBrain

-(void)pushElement:(double)operand {
    NSNumber *operandObject=[NSNumber numberWithDouble:operand];
                            
    [self.stack addObject:operandObject];
}

-(double) popElement {
    NSNumber *popedNumber=[self.stack lastObject];
    if (popedNumber)
    {
        [_stack removeLastObject];
    }
  
    return [popedNumber doubleValue];
}

-(double)performOperation:(NSString*)operation {
    double  result = 0;
    if( [operation isEqualToString: @"+"]){
        result  =self. popElement + self.popElement;
    }
    else if ([operation isEqualToString:  @"*"]){
        result=self.popElement*self.popElement;
    }
    else if ([operation isEqualToString:@"-" ]) {
        double operand=self.popElement;
        result=self.popElement - operand ;
    }
    else if ([operation isEqualToString:@"/"]) {
        double divisor =self.popElement;
        result= self.popElement/ divisor;
    }
  
    return result;
}

@end
4

1 に答える 1

1

3 つのエラーはすべて、Objective-C の基本をまだ理解していないことを示す単純なエラーです。まず言語を学ぶ必要があります。メソッドを呼び出してパラメーターを渡す方法を学びます。

最初のエラー:

[_Brain.pushElement :self.display.text];

これは次のようになります。

[_Brain pushElement:self.display.text];

pushElement:ここでは、オブジェクトのメソッドを呼び出し_Brainます。

2 番目のエラー:

self.enterPressed;

enterPressedこれは、 onという名前のプロパティにアクセスしようとしていることを示していますself。しかし、そのようなプロパティはありません。という名前のメソッドがありenterPressed:、これはUIButton引数として a を取ります。したがって、次のように呼び出す必要があります。

[self enterPress:sender];

3 番目のエラー:

double result = [_Brain.performOperation];

ここでメソッドを呼び出したいのですが、performOperationメソッドがありません。というメソッドがありperformOperation:ます。これは type のパラメーターを取りますNSString。次のように呼び出す必要があります。

double result = [_Brain performOperation:@"some operation"];

ここで欠落している部分は、渡したい操作です。それがどこから来たのかを明確に示すものはありません。おそらくボタンのタイトル。

于 2013-02-28T18:02:18.777 に答える