什么';你的Objective-C编码风格是什么?
当我将任何第三方代码合并到我的应用程序中时,我要做的第一件事是将其重新格式化为我的个人编码偏好:什么';你的Objective-C编码风格是什么?,objective-c,Objective C,当我将任何第三方代码合并到我的应用程序中时,我要做的第一件事是将其重新格式化为我的个人编码偏好: // Single line comments only // I never put spaces inside my parenthesis -(void)myOCDMethod { // If an if or for statement has only one instruction, I don't use brackets if(this)
// Single line comments only
// I never put spaces inside my parenthesis
-(void)myOCDMethod
{
// If an if or for statement has only one instruction, I don't use brackets
if(this)
[self that];
else
[self somethingElse];
// If I do have to use brackets, they go on their own lines so that they line up
if(this)
{
[self that];
[self andThat];
}
// I always put the pointer asterisk next to the instance name
NSObject *variable = [[NSObject alloc] init];
// I always put spaces around operators
if(i == 0)
x = 2;
}
您使用什么OCD编码格式?我做了很多这方面的工作,但有一些不同之处: 我总是在参数前后插入空格:
-(void)myodmethod->-(void)myodmethod
我将大括号保留在同一行:
if (this)
{
//code
}
变成
if (this) {
//code
}
如果我觉得自己特别强迫症,我会与当地人排队:
float l1;
NSArray *array;
ReallyLongClassName *object;
最后是制表符,而不是空格。我做了很多这方面的工作,但有一些不同之处: 我总是在参数前后插入空格:
-(void)myodmethod->-(void)myodmethod
我将大括号保留在同一行:
if (this)
{
//code
}
变成
if (this) {
//code
}
如果我觉得自己特别强迫症,我会与当地人排队:
float l1;
NSArray *array;
ReallyLongClassName *object;
最后是制表符,而不是空格。与您的差不多,不过我在“-”或“+”和返回类型的左括号之间留了一个空格。哦,我使用(条件)了吗?(价值1):(价值2)很多东西,主要是作业和数学。。。我知道这会使代码更难阅读,但它节省了三行的打字时间。与您的差不多,尽管我在“-”或“+”和返回类型的左括号之间留了一个空格。哦,我使用(条件)了吗?(价值1):(价值2)很多东西,主要是作业和数学。。。我知道这使代码更难阅读,但它节省了三行的打字时间
制表符在一行中间是邪恶的,而空格是摇滚的!例如:
int n;
double d;
让选项卡大小为4。我将用圆点指出它们:
. . .
int n; // two tabs here
double d; // one tab here
如果该代码在另一个开发人员的机器上打开,其中选项卡大小为2,他将看到以下图片:
. . . . .
int n;
double d;
因此,您应该使用相同的选项卡大小(这无论如何都不起作用,因为您的代码可能会被世界上的任何人重用-您不能强迫所有人),或者使用空格。明白了吗?制表符在一行中间是邪恶的,而空格是摇滚的!例如:
int n;
double d;
让选项卡大小为4。我将用圆点指出它们:
. . .
int n; // two tabs here
double d; // one tab here
如果该代码在另一个开发人员的机器上打开,其中选项卡大小为2,他将看到以下图片:
. . . . .
int n;
double d;
因此,您应该使用相同的选项卡大小(这无论如何都不起作用,因为您的代码可能会被世界上的任何人重用-您不能强迫所有人),或者使用空格。明白了吗?我在路上
NSString* aString;
露营,而不是
NSString *aString;
(对于变量和参数)
其基本原理是,在第一种情况下,它看起来像是在说“aString是一个NSString指针”,而后者读起来更像“(解除引用的)*aString是一个NSString对象”。特别是在Obj-C中,所有对象都是堆分配的,因此由指针引用,第一个对象感觉不那么复杂
我只为函数定义、方法定义和ivar块对齐大括号,因为它们是文件中的第一级作用域(任何外部都是全局的),否则会感觉“泄漏”。对齐后,块体更加清晰,没有“孔”
在方法签名中,我使用以下间距:
- (void) methodName:(Class*) object;
当有2个以上的参数时,我喜欢垂直对齐冒号(除非第一个param标记比方法名长很多,当它断开时)。Xcode很好地自动调整到这个位置
其他一切都和你一样。我很忙
NSString* aString;
露营,而不是
NSString *aString;
(对于变量和参数)
其基本原理是,在第一种情况下,它看起来像是在说“aString是一个NSString指针”,而后者读起来更像“(解除引用的)*aString是一个NSString对象”。特别是在Obj-C中,所有对象都是堆分配的,因此由指针引用,第一个对象感觉不那么复杂
我只为函数定义、方法定义和ivar块对齐大括号,因为它们是文件中的第一级作用域(任何外部都是全局的),否则会感觉“泄漏”。对齐后,块体更加清晰,没有“孔”
在方法签名中,我使用以下间距:
- (void) methodName:(Class*) object;
当有2个以上的参数时,我喜欢垂直对齐冒号(除非第一个param标记比方法名长很多,当它断开时)。Xcode很好地自动调整到这个位置
其他一切都和你一样。此外,它的开销较小(但我不知道它是否明显)。此外,它的开销较小(但我不知道它是否明显)。我相信,不使用括号也可以编译更简单的指令。在日常生活中不应该引人注目,但知道你在帮助别人总是很好的。为什么是单行注释?为什么编译器不能自己执行优化?看起来很简单…(同样的问题也适用于A?B:C;)我相信不使用括号也可以编译更简单的指令。在日常生活中不应该引人注目,但知道你在帮助别人总是很好的。为什么是单行注释?为什么编译器不能自己执行优化?看起来很琐碎…(同样的问题也适用于A?B:C;)如果我不这样做,一天就不顺利了。除了在当地排队,这简直是疯狂的过度杀戮。不!让当地人甚至伊瓦尔人排队是最好的!;)如果我不这样做,日子就不好过了。除了在当地排队,这简直是疯狂的过度杀戮。不!让当地人甚至伊瓦尔人排队是最好的!;)欢迎您评论为什么某个特定的编码风格(本质上是品味问题)值得投反对票。欢迎您评论为什么某个特定的编码风格(本质上是品味问题)值得投反对票。