2011-11-20 13 views
0

を設定するObjective-Cの関数を使用する:次のように私はObjective-Cの機能を有する整数

-(float)getModelTotal: (int)amount forSelector: (NSString*)selectorType; 

Iは異なるfuncitonで次の手順を実行したい:

float programFee = 1; 

float token = [self getModelTotal: object.Alpha forSelector: object.Beta]; 
programFee += token; 

object.Alphaは整数であり、object.BetaNSStringである。

この関数はfloatを返し、結果を別のfloatに追加したいと思います。 selfにメッセージを送信して関数を呼び出すと、floatがselfではないため、エラーが発生します。

どの受信者にこのメッセージを送信する必要がありますか?

+4

あなたは二つの方法が異なる中で定義されていることを言おうとしているがクラス?あなたが得たエラーは何ですか? –

+0

2つのメソッドは、どちらも同じクラス定義に実装されています。 –

+0

はい、エラーは...ですか? –

答えて

0

いいえ、よく、object.alphaは明らかにNSNumberでありintではありません。

だから、あなたはコールにこのようなものにする必要があります。

[自己getModelTotal:[object.alpha intValue] forSelector:object.beta]

1

これは機能ではなく、方法です。メソッドを宣言したクラスのインスタンスにメッセージを送信する必要があります。

関数を使用する場合は、Cスタイルであるが、@implementationブロックの外に宣言します。


更新:本当にNSNumberあるObject.Alphaあなたを語っているように思え?試してみてください:

float token = [self getModelTotal: [object.Alpha intValue] forSelector: object.Beta]; 
+0

クラス定義内にそのメソッドを宣言し、そのメソッドをクラス定義内に宣言するとどうなりますか? –

+0

それから、 'self'への送信はうまくいくはずです。 –

関連する問題