1

On assignment 2 of the Stanford CS193P course it states that I must add a runProgram class method with the following signature:

+ (double)runProgram:(id)program
usingVariableValues:(NSDictionary *)variableValues;

However I do not recognise or know how to use this syntax as up until now methods have been written more simply:

+ (double)performOperation:(NSString *)operation

Could someone explain this signature? Should the method be written on one line? How do I get/set my dictionary?

Sorry for the basic questions but I am a complete beginner!

4

4 に答える 4

1
+ (double)runProgram:(id)program
 usingVariableValues:(NSDictionary *)variableValues;

と同じです:

+ (double)runProgram:(id)program usingVariableValues:(NSDictionary *)variableValues;

読みやすくするために2行でフォーマットされています。

この宣言では、セレクターは次runProgram:usingVariableValues:のとおりです。コロンの後には、タイプ、つまりprogramタイプidvariableValuesタイプの引数名がありますNSDictionary *

あなたはそれを使用して呼び出す

[ClassName runProgram:myProgram usingVariableValues:myVariables];

辞書を作成するには、次のようなコードを使用します。

NSDictionary *myDict = [NSDictionary dictionaryWithObjectsAndKeys:@"value1",
                        @"key1", @"value2", @"key2", nil];
于 2012-05-17T08:48:16.707 に答える
0

読みやすくするために1行にする必要があります。

+ (double)runProgram:(id)program usingVariableValues:(NSDictionary *)variableValues;

使用法はあなたが期待する通りです:

[MyCustomClass runProgram:myProgram usingVariableValues:myDictionary];
于 2012-05-17T08:48:26.330 に答える
0

クラスメソッドは新しいメソッドではありません。ここでの基本的な違い-1。メソッドのシグネチャ2.クラスオブジェクトの代わりにClassNameでアクセス可能

+ (double)runProgram:(id)program usingVariableValues:(NSDictionary *)variableValues;

-と同じです

+ (double)runProgram:(id)program
 usingVariableValues:(NSDictionary *)variableValues;

このメソッドを呼び出している間-

[ClassName runProgram:someProgram usingVariableValues:someVar];

またはフォーマットされた方法で-

[ClassName runProgram:someProgram 
  usingVariableValues:someVar];
于 2012-05-17T08:50:42.273 に答える
0
+ (double)runProgram:(id)program usingVariableValues:(NSDictionary *)variableValues;

id 型とディクショナリの 2 つのパラメータを取る単純なメソッドです。Objective-C では、パラメーターはセレクターにインターリーブされます。したがって、このメソッドを呼び出すには、次のようにします

[MyClass runProgram: aProgram usingVariableValues: aDictionary];

aDictionary は、メソッドを呼び出す前に作成する必要がある辞書です。これを行う最も簡単な方法は、変更可能な辞書を作成し、項目を 1 つずつ追加することです。

NSMutableDictionary* aDictionary = [[NSMutableDictionary alloc] init];
[aDictionary setObject: @"foo" forKey: @"bar"];
[aDictionary setObject: @"baz" forKey: @"fizz"];
// etc
于 2012-05-17T09:20:52.363 に答える