2012-08-30 9 views
6

誰も次のコードを説明できますか?iOSで複数のパラメータを持つ関数を宣言する方法

- (id)initWithTitle:(NSString*)title ratings:(float)rating; 

(NSString*)title = first parameter , type =string, name = title 

rating:(float)rating = ? ? ?これの意味は何ですか?

フロートはタイプであり、2番目のレーティングがパラメータの名前であれば、開始点は何ですか?

答えて

27

Objective-Cのメソッドは、自己文書化するように設計され、彼らはSmalltalkのの豊かな伝統から借りています。

私はこの最初の部分は、これがIDのオブジェクトを返すのObjective Cのインスタンスメソッドであることを示している-(id)initWithTitle:(NSString*)title rating:(float)rating;

- (id)

、あなたがここに持っているかを説明しようとするでしょう。 -(ダッシュ)は、これがインスタンスメソッドであることを示します。+は、これがクラスメソッドであることを示します。括弧内の最初の値は、メソッドの戻り値です。

initWithTitle:

この部分は、メッセージ名の一部です。この場合の完全なメッセージ名はinitWithTitle:rating:です。 Objective-Cランタイムは、このメソッド情報を受け取り、指定された受信側に送信します。純粋なCでは、 id initWithTitle(NSString* title, float rating)のようになります。ただし、これはObjective-Cであるため、メッセージ名に追加情報が含まれています。

(NSString*)title

この部分は、入力の一部です。ここの入力はNSString*で、ローカル変数名はtitleです。

rating:

この部分は、メッセージ名の2番目の部分です。ここでわかるように、受信者にどの情報を渡すかを示すためにメッセージ名が分割されています。したがって、変数fooとbarを使ってオブジェクトmyObjectにメッセージを送る場合は、次のように入力します。 [myObject initWithTitle:foo rating:bar]; C++スタイルとは対照的に、 myObject.initWithTitle(foo, bar);です。

(float)rating

これは、入力の最後の部分です。ここでの入力はfloat型で、ローカル変数名はratingです。

これは役に立ちます。

+0

Thanx alot、その実用的で詳細な説明ポスト – Ahsan

+0

この情報は役に立ちましたか?これをあなたの質問への回答としてマークしてください(この投稿の左側のチェックマーク)。そして、この投稿をアップ投票することも考えてみてください(上の矢印は「0」です)。 – Stunner

0

initWithTitleは、Objective-Cではメソッド名、

titleratingは、それぞれタイプstringfloatinitWithTitle method二パラメータです。

ここで、ratingsは、パラメータの2番目の部分に付けられた単なる名前または識別子です。

あなたが使用してこのメ​​ソッドを呼び出すことができます。[self initWithTitle:str ratings:0.5];

を私はあなたの疑問が今明らかです:)これで

+0

はいその非常に短いと私のポイントに答え....タンスカルナール – Ahsan

+0

あなたの仕事は、その後、回答を受け入れるの習慣を維持する場合... – Krunal

0
- (id)initWithTitle:(NSString*)title ratings:(float)rating; 

あなたが知っている願って

(NSString*)title =最初のパラメータ、type =文字列、 name =タイトル

同じ方法

ratings:(float)rating ratings:が結合された引数type = floatとratingは、この関数のプレースホルダ名です。

+0

ありがとう助けを頼む@NAZIK! –