2010-12-01 27 views
0

私の呼び出し側のコードは次のようになります。「initializtionで互換性のない型」

NSDictionary *myDictionary = [NSDictionary dictionaryWithObjectsAndKeys: 
     @"a", A_KEY, 
     @"b", B_KEY, 
     @"x", X_KEY, 
     nil]; 
id exp = [[self brain] expression]; 

double result = [[self brain] evaluateExpression:exp 
    usingVariableValues:myDictionary]; -> this is the error line 
  • 式は次のように定義されます@property (readonly) id expression;(私はそれが関係ないと思う)

の署名関数 "evaluateExpression:exp ..."は次のとおりです。

" + (double)evaluateExpression:(id)anExpression 
usingVariableValues:(NSDictionary *)variables;" 

エラー: "incompatible type in initializtion"

私はこれを理解することはできません.2倍を返すメソッドで2つの変数を初期化するだけです。何が間違っているのですか?

+0

私は、この質問にgo-tagの代わりにobjective-cとタグ付けする必要があると推測しています。 –

+0

'A_KEY'等はどのように定義されていますか? –

+0

ここで、A_KEY、B_KEY、X_KEY、 – WrightsCS

答えて

0

メソッド宣言の先頭にあるプラスをマイナスに変更してみてください。プラスはクラスメソッドを示し、あなたは(私が知る限り)それをインスタンスに対して呼び出すことになります。

私は上記の誤りは、メソッドがdoubleを返していることをコンパイラに知らせないと考えるので、エラーです。

+0

を定義しています。それは、私のメソッドがクラスのmathodであったことを忘れています。 – Joe

関連する問題