2012-07-21 90 views
0

您好,我收到錯誤「沒有可見的@Interface for'CalculatorBrain」聲明選擇器'runprogram:usingVariableValues:'「在graphPoint.y代碼部分當聲明存在時,沒有可見的聲明錯誤,目標c

-(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中的對象'CalculatorBrain'相同的值,並調用runprogram:usingVariableValues。我的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的,我應該避免將其中一個文件導入到另一個右邊?

回答

1

您正在進行實例方法調用。 + (double)runProgram:(id)program usingVariableValues: (NSDictionary*) variableValues;是一種類方法。

有兩種可能的修正:

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

我不知道該代碼是如何構成的,所以它不是很明顯這是比較合適的。

+0

這似乎是問題,謝謝 – 2012-07-21 03:15:32