没有合适的资源?快使用搜索试试~ 我知道了~
首页Google的Objective-C编码规范
Google的Objective-C编码规范
4星 · 超过85%的资源 需积分: 9 12 下载量 52 浏览量
更新于2023-03-16
评论 1
收藏 266KB PDF 举报
详细介绍了Objective-C编码规范,该规范是google在苹果的规范基础上整理出的,是目前大家普遍接收的一份规范文档
资源详情
资源评论
资源推荐
Google 的 Objective-C 编码规范
总览
背景知识
Objective-C 是一个 C 语言的扩展语言,非常动态,非常的“面向对象”,它被设计成既拥有复杂的
面向对象设计理念又可以轻松使用与阅读的语言,也是 Mac OS X 和 iPhone 开发的首选语言。
Cocoa 是 Mac OS X 的主要应用框架,提供迅速开发各种功能的 Mac OS X 应用的 Objective-C
类集合。
Apple 已经有一个很好也被广泛接受的 Objective-C 的编程规范,Google 也有类似的 C++编程规
范,这份 Objective-C 编程规范很自然是 Apple 和 Google 的共同推荐的组合。所以,在阅读本规范前,
确保你已经阅读了:
Apple's Cocoa Coding Guidelines
Google's Open Source C++ Style Guide
注意所有已在
Google
的
C++
编程规范里的禁用条款在
Objective-C
里也适用,除非本文档明确
指出反对意见。
本文档旨在描述可供可适用于所有 Mac OS X 代码的 Objective-C(包括 Objective-C++)编码规
范和实践。规范中的许多条款已经改进也不断的被其他的项目和团队所证明其指导性。Google 的相关开源
项目都遵守此规范。
Google 已经发布了一份作为 Google Toolbox for Mac project (文档中简称为 GTM)的组成部分
的遵守本规范的开源代码。这份开放代码也是本文很好的例证(原文看不太懂--Code meant to be
shared across different projects is a good candidate to be included in this repository. )
注意本文不是 Objective-C 的教学指南,我们假设读者已经了解语言。如果你是一个 Objective-C
的初学者或需要重温,请阅读 The Objective-C Programming Language .
示例
人们说一个例子胜过千言万语,所以就让我们用例子来让你感受以下编码规范的风格,留间距,命
名等等。
下例是一份头文件,展示对@interface 声明正确的注释和留间距
// GTMFoo.h
// FooProject
//
// Created by Greg Miller on 6/13/08.
// Copyright 2008 Google, Inc. All rights reserved.
//
#import <Foundation/Foundation.h>
// A sample class demonstrating good Objective-C style. All interfaces,
// categories, and protocols (read: all top-level declarations in a header)
// MUST be commented. Comments must also be adjacent to the object they're
// documenting.
//
// (no blank line between this comment and the interface)
@interface GTMFoo : NSObject {
@private
NSString *foo_;
NSString *bar_;
}
// Returns an autoreleased instance of GMFoo. See -initWithString: for details
// about the argument.
+ (id)fooWithString:(NSString *)string;
// Designated initializer. |string| will be copied and assigned to |foo_|.
- (id)initWithString:(NSString *)string;
// Gets and sets the string for |foo_|.
- (NSString *)foo;
- (void)setFoo:(NSString *)newFoo;
// Does some work on |blah| and returns YES if the work was completed
// successfuly, and NO otherwise.
- (BOOL)doWorkWithString:(NSString *)blah;
@end
下例是一份源文件,展示对接口的@implementation 的实现的正确注释和留间隔。它也包括了主
要方法如 getters,setters,init ,和 dealloc 的相关实现。
//
// GTMFoo.m
// FooProject
//
// Created by Greg Miller on 6/13/08.
// Copyright 2008 Google, Inc. All rights reserved.
//
#import "GTMFoo.h"
@implementation GTMFoo
+ (id)fooWithString:(NSString *)string {
return [[[self alloc] initWithString:string] autorelease];
}
// Must always override super's designated initializer.
- (id)init {
return [self initWithString:nil];
}
- (id)initWithString:(NSString *)string {
if ((self = [super init])) {
foo_ = [string copy];
bar_ = [[NSString alloc] initWithFormat:@"hi %d", 3];
}
return self;
}
- (void)dealloc {
[foo_ release];
[bar_ release];
[super dealloc];
}
- (NSString *)foo {
return foo_;
}
- (void)setFoo:(NSString *)newFoo {
[foo_ autorelease];
foo_ = [newFoo copy];
}
- (BOOL)doWorkWithString:(NSString *)blah {
// ...
return NO;
}
@end
间隔与格式化
空格对 tab 键
仅使用空格,缩进两个。
我们使用空格用于缩进,不要在编码时使用 tab 键,你应该设置你的编辑器将 tab 键转换成对应的
空格。
行长度
代码中的每行文本不要超过 80 个字符的长度。
尽管 Objective-C 正变得比 C++更加繁冗,为了保持规范的互通性,我们还是决定保持 80 字符长
度的限制。这比你想象中的更容易做到。
我们知道本条款是有争议的,但已有此多的代码已经遵从了本条款,即使只是保持一致性也是一个
充足的理由。
你可以在 Xcode 里清楚地发现代码中的违规,设置 Xcode > Preferences > Text Editing >
Show page guide. (之后就可以在代码编辑区域里看到一条指定字符长度的指示线了)
方法声明与定义
剩余28页未读,继续阅读
wangzz
- 粉丝: 625
- 资源: 8
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
- SPC统计方法基础知识.pptx
- MW全能培训汽轮机调节保安系统PPT教学课件.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论1