誰かが次のコードを説明できますか?
- (id)initWithTitle:(NSString*)title ratings:(float)rating;
(NSString*)title = first parameter , type =string, name = title
rating:(float)rating = ? ? ?
これはどういう意味ですか?
Floatはタイプであり、2番目の評価がパラメーターの名前である場合、開始時の評価は何ですか。
Objective-Cのメソッドは自己文書化するように設計されており、Smalltalkの豊かな伝統を取り入れています。
私はあなたがここに何を持っているかを説明しようとします、-(id)initWithTitle:(NSString*)title rating:(float)rating;
- (id)
この最初の部分は、これがidオブジェクトを返すObjectiveCインスタンスメソッドであることを示しています。-
(ダッシュ)はこれがインスタンスメソッドであること+
を示し、aはこれがクラスメソッドであることを示します。括弧内の最初の値は、メソッドの戻り値です。
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型であり、評価のローカル変数名を持っています。
うまくいけば、これがお役に立てば幸いです。
これにより、関数の宣言方法を理解することができます。
initWithTitle
Objective-cのメソッド名です。
title
とはそれぞれタイプとrating
の2つのパラメータです。initWithTitle method
string
float
ここで、ratings
はパラメータの2番目の部分に付けられた名前または識別子です。
このメソッドは、次を使用して呼び出すことができます。[self initWithTitle:str ratings:0.5];
私はあなたの疑問が今明らかになっていることを願っています:)
- (id)initWithTitle:(NSString*)title ratings:(float)rating;
その中であなたはそれを知っています
(NSString*)title
=最初のパラメータ、type
=文字列、name
=タイトル
同じ方法
ratings:(float)rating
ratings:
結合された引数、type
= floatでありrating
、この関数のプレースホルダー名です。