アップデート
そのクラスのインスタンスでクラス メソッドを呼び出していたことがわかりました。
そのコード行を次のように修正しました。
double result = [CalculatorBrain runProgram:[self.brain program] usingVariableValues:[self variableValues]];
しかし、プログラムを実行してその行が評価されると、次のエラーが発生します。
+[CalculatorBrain runProgram:usingVariableValues:]: 認識されないセレクターがクラス 0x6908 に送信されました
オリジナル
ビューの enterPressed 内の XCode で次のエラーが発生するのはなぜですか?
** 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