Objective-C选项卡设置和空白样式

时间:2009-07-03 04:45:27

标签: objective-c coding-style whitespace

Apple的Objective-C文档,引用和生成的代码似乎与它们的编码风格完全不一致。我无法确定Objective-C和Cocoa源代码的“首选”样式(如果存在)。

这是我到目前为止遇到的情况。

标签设置

Xcode的默认设置设置为标签。但是,无论选项卡设置如何,生成的项目始终都会创建4个空格。更糟糕的是,一些生成的代码有闲置的标签。下载的代码示例似乎也因项目而异。

方法定义间距

在Apple的示例代码中,不同风格的方法定义甚至在单个文件中也有所不同。但最常见的间距样式似乎包括-+之间的空格以及仅在附加参数之间的空格。这种风格也用在Xcode参考库中,这使我相信它是首选的风格。

- (IBAction)reloadData:(id)sender;
- (id)tableView:(NSTableView *)aTableView objectValueForTableColumn:(NSTableColumn *)aTableColumn row:(NSInteger)rowIndex

不一致的变量:

- (IBAction) reloadData:(id)sender;
- (IBAction)reloadData:(id) sender;
-(IBAction)reloadData:(id)sender;
- (IBAction) reloadData: (id)sender;
- (id)tableView: (NSTableView *)aTableView objectValueForTableColumn: (NSTableColumn *)aTableColumn row: (NSInteger)rowIndex

支撑式

另一个广泛不一致的是支撑式。有两种流行的风格:

打开大括号:

  @interface Foo : NSObject
  {
  }

  - (id)init
  {
  }

在与方法声明相同的行上打开大括号:

  @interface Foo : NSObject {
  }

  - (id)init {
  }

问题

Apple推荐的Objective-C编码风格是什么?如果没有,你喜欢什么样的风格?为什么?

1 个答案:

答案 0 :(得分:9)

我发现我经常将生成的项目设置为我自己喜欢的样式,因此我将模板文件编辑为我的首选项(缩进的标签,自己的行上的大括号)。文件在这里:

/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Project Templates/

我选择所有内容,用cmd- [(根据文档需要的次数)删除所有缩进并执行Edit-> Format-> re-indent。我把它连接到shift-cmd- [为了方便起见。

我已经看到了样式代码和项目模板的风格差异,并且假设它是由于文件的年龄不同而造成的。我猜他们有不同的内部编码风格指南已经改变。

以下是Google Obj-C风格指南:

http://google-styleguide.googlecode.com/svn/trunk/objcguide.xml

另一个来自CocoaDevCentral的好文章:

http://www.cocoadevcentral.com/articles/000082.php

如果您真的想遵循Apple规则,Objective C编程指南中有一堆代码示例来处理规则。

https://developer.apple.com/library/mac/documentation/cocoa/conceptual/ProgrammingWithObjectiveC/