你的Objective-C编码风格是什么?

时间:2008-11-21 06:27:43

标签: 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)
        [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编码格式?

5 个答案:

答案 0 :(得分:3)

我做了很多这方面的工作,但存在一些差异:

我总是在parens之前和之后插入空格: -(void)myOCDMethod -> - (void) myOCDMethod

我将括号放在同一行:

if (this) 
{
  //code
}
变为

if (this) {
  //code
}

如果我感觉特别强迫症,我会排队当地人:


float                l1;
NSArray              *array;
ReallyLongClassName  *object;

最后,TABS,而不是SPACES。

答案 1 :(得分:2)

标签在一条线的中间是邪恶的,而空间摇滚!例如:

int    n;
double d;

让标签大小为4.我会用点指出它们:

.   .   .
int     n;  // two tabs here
double  d;  // one tab here

如果该代码在其他开发人员的机器上打开,其中选项卡大小为2,他将看到以下图片:

. . . . .
int   n;
double  d;

所以,你应该使用相同的标签大小(这不会起作用,因为你的代码可能被世界上的任何人重用 - 你不能强迫所有人),或者坚持使用空格。疑难杂症?

答案 2 :(得分:1)

与你的几乎相同,不过我在“ - ”或“+”与返回类型的左括号之间留了一个空格。哦,我用(条件)? (value1):( value2)很多东西,主要用于作业和数学...我知道它使代码更难阅读,但它节省了三行的打字价值。

答案 3 :(得分:0)

  1. 正确缩进代码
  2. 正确的换行符。 (最多一个换行符;每个函数和注释之前的换行符等。)
  3. 更正命名约定

答案 4 :(得分:0)

我在

NSString*  aString;
阵营,而不是

NSString  *aString;

(对于变量和参数)

理由是,在第一种情况下,它看起来像是在说“aString是一个NSString指针”,而后者更像是“(取消引用)* aString是一个NSString对象”。特别是在Obj-C中,所有对象都是堆分配的,因此被指针引用,第一个对象感觉不那么复杂。

我只对齐函数定义,方法定义和ivar块的大括号,因为它们是文件中的第一级作用域(外部的任何东西都是全局的),否则感觉“漏”。对齐,块更明显,没有“洞”。

在方法签名中,我使用这个间距:

- (void) methodName:(Class*) object;

当有超过2个参数时,我喜欢垂直对齐冒号(除非第一个param标签比方法名称长得多,当它中断时)。 Xcode很好地自动标记到这个。

其他一切都和你一样。