在斯坦福CS193P课程的作业2中,它声明我必须添加一个带有以下签名的runProgram类方法:
+ (double)runProgram:(id)program
usingVariableValues:(NSDictionary *)variableValues;
但是我不知道或不知道如何使用这种语法,因为到目前为止,方法编写得更简单:
+ (double)performOperation:(NSString *)operation
有人可以解释这个签名吗? 该方法应该写在一行吗? 如何获取/设置我的字典?
对不起基本问题,但我是一个完整的初学者!
答案 0 :(得分:1)
+ (double)runProgram:(id)program
usingVariableValues:(NSDictionary *)variableValues;
与:
相同+ (double)runProgram:(id)program usingVariableValues:(NSDictionary *)variableValues;
它格式化为两行,便于阅读。
在此声明中,您的选择器为:runProgram:usingVariableValues:
,冒号后面是参数名称及其类型,即program
类型id
和variableValues
类型{{ 1}}。
您使用
调用它NSDictionary *
要创建字典,请使用以下代码:
[ClassName runProgram:myProgram usingVariableValues:myVariables];
答案 1 :(得分:0)
为了便于阅读,应该在一行上:
+ (double)runProgram:(id)program usingVariableValues:(NSDictionary *)variableValues;
用法正如您所期望的那样:
[MyCustomClass runProgram:myProgram usingVariableValues:myDictionary];
答案 2 :(得分:0)
类方法不是任何新方法,这里的基本差异 - 1.在方法的签名 2.可通过ClassName而不是Class Object访问
+ (double)runProgram:(id)program usingVariableValues:(NSDictionary *)variableValues;
与 -
相同+ (double)runProgram:(id)program
usingVariableValues:(NSDictionary *)variableValues;
调用此方法时 -
[ClassName runProgram:someProgram usingVariableValues:someVar];
或格式化的方式 -
[ClassName runProgram:someProgram
usingVariableValues:someVar];
答案 3 :(得分:0)
+ (double)runProgram:(id)program usingVariableValues:(NSDictionary *)variableValues;
只是一个采用两个参数的方法,一个是id类型,另一个是字典。在Objective-C中,参数被交织到选择器中。因此,要调用此方法,您将执行
[MyClass runProgram: aProgram usingVariableValues: aDictionary];
aDictionary是在调用方法之前需要构造的字典。最简单的方法是创建一个可变字典并逐个添加项目。
NSMutableDictionary* aDictionary = [[NSMutableDictionary alloc] init];
[aDictionary setObject: @"foo" forKey: @"bar"];
[aDictionary setObject: @"baz" forKey: @"fizz"];
// etc