什么';你的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;)如果我不这样做,一天就不顺利了。除了在当地排队,这简直是疯狂的过度杀戮。不!让当地人甚至伊瓦尔人排队是最好的!;)如果我不这样做,日子就不好过了。除了在当地排队,这简直是疯狂的过度杀戮。不!让当地人甚至伊瓦尔人排队是最好的!;)欢迎您评论为什么某个特定的编码风格(本质上是品味问题)值得投反对票。欢迎您评论为什么某个特定的编码风格(本质上是品味问题)值得投反对票。