我在一个子例程中有以下代码,该子例程在子例程evaluateExpression中的varVal库中生成初始化错误中的不兼容类型:
NSDictionary *varVal;
for (int i=0; i<varCount; i++) {
[varVal setObject:[(i+1)*2 stringValue] forKey:[i stringValue]];
}
double result =[[self brain] evaluateExpression:[[self brain] expression]
usingVariableValues:varVal];
我在brain.h文件中的子程序声明是:
+(double)evaluateExpression:(id)anExpression
usingVariableValues:(NSDictionary *)variables;
我很感激任何帮助。
答案 0 :(得分:0)
+(double)evaluateExpression:(id)anExpression
是一种类方法,而不是实例方法。
尝试
double result =[brain evaluateExpression:[[self brain] expression] usingVariableValues:varVal];
并且作为样式点类通常应该被限制为易于阅读,如...
@interface Brain : NSObject
....
double result =[Brain evaluateExpression:[[self brain] expression] usingVariableValues:varVal];