当我将任何第三方代码合并到我的应用程序中时,我做的第一件事就是将其重新格式化为我的个人编码偏好:
// 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编码格式?
答案 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)
答案 4 :(得分:0)
我在
NSString* aString;
阵营,而不是
NSString *aString;
(对于变量和参数)
理由是,在第一种情况下,它看起来像是在说“aString是一个NSString指针”,而后者更像是“(取消引用)* aString是一个NSString对象”。特别是在Obj-C中,所有对象都是堆分配的,因此被指针引用,第一个对象感觉不那么复杂。
我只对齐函数定义,方法定义和ivar块的大括号,因为它们是文件中的第一级作用域(外部的任何东西都是全局的),否则感觉“漏”。对齐,块更明显,没有“洞”。
在方法签名中,我使用这个间距:
- (void) methodName:(Class*) object;
当有超过2个参数时,我喜欢垂直对齐冒号(除非第一个param标签比方法名称长得多,当它中断时)。 Xcode很好地自动标记到这个。
其他一切都和你一样。