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

12 whitespace coding-style objective-c

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

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

标签设置

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

方法定义间距

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

- (IBAction)reloadData:(id)sender;
- (id)tableView:(NSTableView *)aTableView objectValueForTableColumn:(NSTableColumn *)aTableColumn row:(NSInteger)rowIndex
Run Code Online (Sandbox Code Playgroud)

变异不一致:

- (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
Run Code Online (Sandbox Code Playgroud)

大括号的风格

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

打开支撑线:

  @interface Foo : NSObject
  {
  }

  - (id)init
  {
  }
Run Code Online (Sandbox Code Playgroud)

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

  @interface Foo : NSObject {
  }

  - (id)init {
  }
Run Code Online (Sandbox Code Playgroud)

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

nev*_*ing 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/