(UIApplication *)为什么星号前有空格?

时间:2010-10-07 20:51:53

标签: objective-c

-(void)applicationDidFinishLaunching:(UIApplication *) app {
在UIApplication之后为什么在星号之前有空格?

4 个答案:

答案 0 :(得分:10)

这是一个characteristic from C code,我是Objective-C的新手,所以请原谅我,如果这不是正确的客观C语法。它会回答这个问题。关于它的风格的答案大多是关于诸如问题中给出的参数的正确的。问题在于在C或C ++中在单行上声明多个变量时(这是我不确定Obj-C是否支持这一点的部分)。

int* i;

int *i;

是等价的;但是在处理多个声明时

int* i, j;

不同
int *i, *j;

*应用于i变量而不是int,因此您需要在每个要创建指针的变量上使用*。

因此,在类名后面加上空格的目的是对它的风格点头。

答案 1 :(得分:7)

正如已经说过的那样,只是风格;但是通常认为良好的样式是将空格放在星号之前,而不是之后(即NSString *aString;而不是NSString* aString;,因为星号与名称绑定,而不是类型;参考史蒂夫的回答)。

然后,相同的样式通常会延伸到类型独立时,例如在- (NSString *) someMethod;- (void) someMethodWithAnArgument:(NSString *)argumentName;中,以保持一致。

答案 2 :(得分:5)

这只是一种风格偏好,在这种情况下,空间并不意味着什么。

答案 3 :(得分:0)

实际上,int *i; int* i;(int *) i; 都意味着不同的东西。前两个是指针。但最后一个实际上是说“i”返回一个指向int的指针。所以在:

-(void)applicationDidFinishLaunching:(UIApplication *) app {

实际上是说“app”会返回一个指针