-(void)applicationDidFinishLaunching:(UIApplication *) app {
在UIApplication之后为什么在星号之前有空格?
答案 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”会返回一个指针