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 和协议传递了 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;是一个类方法。

有两个潜在的修复:

  • 将 更改+-.
  • 更改[self.graphingPoint runProgram:...][[self.graphingPoint class] runProgram:...]

我不知道代码的结构如何,所以不清楚哪个更合适。

于 2012-07-21T03:12:02.190 回答