- 1、本文档共29页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Objective-C编码规范
Objective-C 编程规范
目录
例子
空格与格式
空格与制表符
行宽
方法声明与定义
方法调用
@public与@private
异常
协议
命名
文件名
Objective-C++
类名
分类名
Objective-C方法名
变量名
注释
文件注释
声明注释
实现注释
对象所有权
Cocoa与Objective-C特性
成员变量应该为@private
指明指定的初始化器
重写指定的初始化器
避免使用+new
保持公有的API尽量简单
#import与#include
使用根框架
创建对象时尽量使用autorelease
Autorelease之后retain
Dealloc中应该按声明的顺序处理成员变量
Setters中对NSString进行copy
避免抛出异常
nil的检查
BOOL陷阱
属性
Cocoa模式
委托模式
模型-视图-控制器
背景介绍
Objective-C是一种动态的面向对象的语言,它是C的扩展。它被设计成具有易读易用的,支持复杂的面向对象设计的编程语言。它是Mac OS X以及iPhone的主要开发语言
Cocoa是Mac OS X的主要的应用程序框架。它由一组支持Mac OS X全部特性的,并可用于快速开发的Objective-C类构成。
? Apples Cocoa Coding Guidelines
? Googles Open Source C++ Style Guide
本文档的目的在于为所有的Mac OS X的代码提供编程指南及最佳实践。许多指南是在实际的项目及小组中经过长期的演进及验证的。
请注意,本指南不是Objective-C的教程。我们假定读者已经对Objective-C非常熟悉。如果你刚刚接触Objective-C或者需要提高,请阅读HYPERLINK /documentation/Cocoa/Conceptual/ObjectiveC/index.htmlThe 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 theyre
// 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
文档评论(0)