新手IOS类方法

时间:2012-05-17 08:45:48

标签: objective-c ios cs193p

在斯坦福CS193P课程的作业2中,它声明我必须添加一个带有以下签名的runProgram类方法:

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

但是我不知道或不知道如何使用这种语法,因为到目前为止,方法编写得更简单:

+ (double)performOperation:(NSString *)operation

有人可以解释这个签名吗? 该方法应该写在一行吗? 如何获取/设置我的字典?

对不起基本问题,但我是一个完整的初学者!

4 个答案:

答案 0 :(得分:1)

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

与:

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

它格式化为两行,便于阅读。

在此声明中,您的选择器为:runProgram:usingVariableValues:,冒号后面是参数名称及其类型,即program类型idvariableValues类型{{ 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