我正在学习objective-c(via apple),刚刚完成解释方法语法的部分。
我决定在'helper'类中编写一个非常简单的方法,它会添加两个数字......
界面......
+ (int)addTwo:(int)num1 secondNum:(int)num2;
...实施
+ (int)addTwo:(int)num1 secondNum:(int)num2 {
return num1+num2;
}
...使用
int test = [MyClass addTwo:1 secondNum:2];
现在我的问题是这个......
一切都在编译并且在语法上是正确的,但是,在我看来,这种方法的使用非常尴尬,而且在我看来应该是像...一样的东西......
int test2 = [MyClass addTwo:firstNum:(1)secondNum:(2)]
基本上,在解释1是第一个数字而2是第2个时更为冗长。
当我写这篇文章时,我看到我可以写出类似“addTo:1,thisNumber:2”的内容,这更清楚,但我担心我会遗漏一些重要内容,或者我没有注意到课程试图教。
我已经习惯了Java,所以很多东西在某些方面都是新的,如果这是客观的c代码编写方式,那就完全没问题了,但我只是想确保我没有遗漏任何东西。 / p>
提前致谢。
答案 0 :(得分:2)
命名目标C方法需要一些时间习惯:想法是将第一个参数的描述“粘合”到方法的名称:
+ (int)addFirstNum:(int)num1 toSecondNum:(int)num2 {
return num1+num2;
}
我们的想法是将您的选择器的名称读作接近英语,因为您认为合理。在这种情况下,选择器的名称为addFirstNum:toSecondNum:
,并且在英语中显示为OK。
答案 1 :(得分:0)
int test2 = [MyClass addTwo: firstNum:(1) secondNum:(2)]
在此提案中,您似乎将firstNum
和secondNum
视为变量名称。那是错的。
在Objective-C中,方法名称是+addFirstNum:secondNum:
,传入的参数是冒号:[MyClass addFirstNum:1 secondNum:2]
,但没有像变量名这样的内容。
在具有像Python这样的命名参数的语言中,您可以addNums(first = 1, second = 2)
并且它等于addNums( second = 2, first = 1)
,但在目标-C中,它由冒号的位置定义。并且方法的名称不会改变。