初始化中的类型不兼容

时间:2010-12-25 14:19:15

标签: objective-c types

我在一个子例程中有以下代码,该子例程在子例程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;

我很感激任何帮助。

1 个答案:

答案 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];