2011-07-04 7 views
7

として新たな構造体を渡します2つのint、xとyを格納します。このメソッドを呼び出す場合私はそうのような機能を有するパラメータ

、私はそうのようにそれを呼び出します。

VELOCITY vel; 
LOCATION loc; 

vel.x = 100.0; 
vel.y = 0.0; 

loc.x = 10.0; 
loc.y = 10.0; 

[self addBalloon:Red:vel:loc]; 

しかし私には、これが混乱しそうです。 Iライン上の構造体を作成しながら、ここでは... 1行に直接

を関数を呼び出すしたいと思いますが、私の質問です:私は、これはの#defineを使用して行うことができるかどうかわからないんだけど..しかし、それはすることができない場合..は、VELOCITYまたはLOCATIONを返す関数を作成し、入力xとyをとる唯一の実行可能なオプションですか?

私は、次のような何かをしたいと思います:

[self addBalloon:Red:VELOCITY(100.0, 0.0):LOCATION(10.0, 10.0)]; 
+0

間のテキストを持ってください。コロン。コロンの前にメソッド名の一部がどのように存在しないかを確認してください。 SDKではこれが起こることはありませんので、あなた自身で行うべきではありません。 (http://i.stack.imgur.com/DCu5T.png) –

答えて

7

あなたは指定された初期化子のためにC99の構文を使用することができます。

[self addBalloon:Red:(VELOCITY){100.0, 0.0}:(LOCATION){10.0, 10.0}]; 

または

[self addBalloon:Red:(VELOCITY){.x=100.0, .y=0.0}:(LOCATION){.x=10.0, .y=10.0}]; 
+1

これは完璧です。 – Dalisto1

関連する問題