1

私には2つのクラスがあります:MainClassSecondClass。そこにあるいくつかのメソッドを使用するためにインポートSecondClass.Hしました。MainClass.mダブルタイプの入力でメソッドを呼び出すことはできますが、入力のない(またはvoidタイプの)メソッドを呼び出すことはできません(または方法がわかりません)。次のコマンドでdouble型のメソッドを呼び出すことができます。 [self.second someMethod2: type double];:を使用してvoid inputメソッドを呼び出そうとしまし[self.second someMethod1];たが、機能しません。

私はこれらの2つのメソッドを異なるクラスに持っています。

-(void)pushOperand:(double)operand {

NSNumber *operandObject = [NSNumber numberWithDouble:operand];

[self.operandStack addObject:operandObject];

}

-(double)popOperand {

NSNumber *operandObject = [self.operandStack lastObject];
if( operandObject ) [self.operandStack removeLastObject];
return [operandObject doubleValue];

}

私は最初の方法を使用することができます

[self.brain pushOperand:[self.display.text doubleValue]];

しかし、xcodeは2番目のメソッドを見つけることさえできません。私はもう試した

[self.brain popOperand];、[self.brain popOperand];、..。

4

1 に答える 1

2

ClassA と ClassB の 2 つのクラスがあるとします。

重要な注意点として、ClassA のインターフェイス ファイルでは、takeNothingAndReturnNothing をプロトタイプとして宣言して公開する必要があります -(void)takeNothingAndReturnNothing;

ClassAと呼ばれるインスタンスメソッドがありtakeNothingAndReturnNothing(名前はメソッドが無効であることを示しています)、メソッド宣言は次のようになります

-(void)takeNothingAndReturnNothing{
   NSLog("this is %s from ClassA",  __FUNCTION__);
}

ClassB(インポート後)でClassA、最初に のオブジェクトを作成し、ClassA後で以下のようにそのインスタンス メソッドを呼び出します。

ClassA *theObject=[[ClassA alloc]init];
[theObject takeNothingAndReturnNothing];
于 2012-08-03T07:12:33.023 に答える