0

Objective-J のメソッド シグネチャを理解するのに苦労しました (ただし、Objective-C でも同じはずです)。

構文は次のとおりです。

-(return_type)instanceMethod1:(param1_type)param1_varName :(param2_type)param2_varName;

括弧内に型を指定します。ただし、次のコード行が見つかりました。

1)

var navigationArea = [[CPView alloc] initWithFrame:CGRectMake(0.0, 0.0, 150.0, CGRectGetHeight([contentView bounds]) - 150.0)];

パラメータが括弧の間に渡されるのはなぜですか? コロン「:」の後にパラメータを指定すると思いました。

2)

-(void) importDocumentWithName:(NSString *)name withSpecifiedPreferences:(Preferences *)prefs beforePage:(int)insertPage;

「withSpecifiedPreferences」とは何ですか? 説明ですか?それの用途は何ですか?

ありがとう

4

2 に答える 2

3

1)は 2 つのスタイルの組み合わせを示しており、Objective-C スタイル メソッドは次を呼び出します。

[[CPView alloc] initWithFrame:...];

C スタイルの関数呼び出し:

CGRectMake(1, 2, 3, 4);

Objective-J は JavaScript の厳密なスーパーセットです。つまり、JavaScript が持つ C スタイルの関数呼び出し構文に加えて、メッセージ パッシング構文を使用できます。

2)では、withSpecifiedPreferences:メソッド (または「セレクター」) 名の一部です。 「メッセージ構文」を参照してください。

于 2010-12-18T17:15:37.260 に答える
1
  1. CGRectMake()CGRectGetHeight()は C 関数であり、Objective-C または Objective-J のメソッドではないためです。C 関数呼び出しの場合、パラメーターは括弧内にコンマで区切られて渡されます。

    の結果は、クラスのメソッド ( Objective-C メソッド)CGRectMake()にパラメーターとして渡されます。initWithFrame:CPView

  2. prefs2番目の質問については、そのメソッドを見たことがないので、パラメーターが何に使用されているのか本当にわかりません...

于 2010-12-18T17:13:36.187 に答える