更新
事实证明,我在该类的一个实例上调用了一个类方法。
我已将该行代码修复为:
double result = [CalculatorBrain runProgram:[self.brain program] usingVariableValues:[self variableValues]];
但是当我运行程序并评估该行时,我收到以下错误:
+[CalculatorBrain runProgram:usingVariableValues:]: 无法识别的选择器发送到类 0x6908
原来的
为什么我在视图的 enterPressed 内的 XCode 中收到以下错误:“CalculatorBrain”没有可见的@interface 声明选择器“runProgram:usingVariableValues:”?
** CalculatorViewController.m **
#import "CalculatorViewController.h"
#import "CalculatorBrain.h"
@interface CalculatorViewController()
@property (nonatomic, strong) CalculatorBrain *brain;
@property (nonatomic, strong) NSMutableDictionary *variableValues;
@end
@implementation CalculatorViewController
@synthesize brain = _brain;
@synthesize variableValues = _variableValues;
- (CalculatorBrain *)brain {
if (!_brain) _brain = [[CalculatorBrain alloc] init];
return _brain;
}
- (NSMutableDictionary *)variableValues {
if (!_variableValues) {
_variableValues = [[NSMutableDictionary alloc] init];
}
return _variableValues;
}
- (IBAction)enterPressed {
double *result = [self.brain runProgram:[self.brain program] usingVariableValues:[self variableValues]];
}
** CalculatorBrain.h **
#import <UIKit/UIKit.h>
@interface CalculatorBrain : NSObject
+ (double)runProgram:(id)program usingVariableValues:(NSDictionary *)variableValues;
@property (readonly) id program;
@end