0

こんにちは私は、graphPoint.yコード部分で「CalculatorBrainの表示された@interfaceがセレクター'runprogram:usingVariableValues:'を宣言していません」というエラーが発生します

-(id) programToGraph:(GraphingView *)sender{

 CGPoint graphPoint;

for( int x =-100;x<100; x++)
    {
    NSDictionary* xValue = [NSDictionary dictionaryWithObject:[NSNumber numberWithInt:x] forKey:@"X", nil];
    graphPoint.x =x;
    //error occurs here
    graphPoint.y = [self.graphingPoint runProgram: [self.graphingPoint program] usingVariableValues:xValue];
    }   
}

私はsegueとprotocolsを介してself.graphingPointを渡したので、別のMVCにありrunprogram:usingVariableValuesを呼び出すオブジェクト'CalculatorBrain'と同じ値になります。私のcalculatorBrainの実装には上記のメソッドがあり、独自のviewControllerで機能しますが、プロトコルメソッドを介してこの新しいviewControllerで呼び出すと、CalculatorBrainで宣言しないと表示されます。これが元の宣言です

@interface CalculatorBrain : NSObject

- (void)pushOperand:(double)operand;
- (double)performOperation:(NSString *)op;
@property (nonatomic, readonly) id program;
+ (NSString *)descriptionOfProgram:(id)program;

+ (double)runProgram:(id)program usingVariableValues: (NSDictionary*) variableValues;

@property (nonatomic, strong) NSDictionary* testVariableValues;
- (void) testValue : (NSString*) test;
-(void) variablePressed:(NSString*) variable;
-(NSString*) callDescription;
+(NSString*) descriptionTop: (NSMutableArray*) stack;
-(id) undoVariable;

ダブルにフロートする必要があるCGPoint.y値を割り当てているためにエラーが発生する可能性がありますか?また、これらは別個のMVCであるため、一方のファイルをもう一方の右側にインポートすることは避けてください。

4

1 に答える 1

1

インスタンスメソッドを呼び出しています。+ (double)runProgram:(id)program usingVariableValues: (NSDictionary*) variableValues;クラスメソッドです。

2つの潜在的な修正があります:

  • をに変更+-ます。
  • [self.graphingPoint runProgram:...]に変更[[self.graphingPoint class] runProgram:...]

コードがどのように構成されているのかわからないので、どちらが適切かはわかりません。

于 2012-07-21T03:12:02.190 に答える