- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
网址:edu.51CTO.com
iOS应用开发最佳实践:编写高质量Objective-C代码
点标记语法
属性和幂等方法(多次调用和一次调用返回的结果相同)使用点标记语法访问,其他的情况使用方括号标记语法。
良好的风格:
view.backgroundColor?=?[UIColor?orangeColor];?
[UIApplication?sharedApplication].delegate;?
不良的风格:
[view?setBackgroundColor:[UIColor?orangeColor]];?
UIApplication.sharedApplication.delegate;?
间距
二元运算符和参数之间需要放置一个空格,一元运算符、强制类型转换和参数之间不放置空格。关键字之后圆括号之前需要放置一个空格。
void?*ptr?=?value?+?10?*?3;?
NewType?a?=?(NewType)b;?
for?(int?i?=?0;?i??10;?i++)?{?
????doCoolThings();?
}?
数组和字典类型的字面值的方括号两边各放置一个空格。
NSArray?*theShit?=?@[?@1,?@2,?@3?];?
字典字面值的键和冒号之间没有空格,冒号和值之间有一个空格。
NSDictionary?*keyedShit?=?@{?GHDidCreateStyleGuide:?@YES?};?
C函数声明中,左括号的前面不保留空格,并且函数名应该像类一样带有命名空间标识。
良好的风格:
void?RNCwesomeFunction(BOOL?hasSomeArgs);?
长的字面值应被拆分为多行。
良好的风格:
NSArray?*theShit?=?@[?
????@Got?some?long?string?objects?in?here.,?
????[AndSomeModelObjects?too],?
????@Moar?strings.?
];?
NSDictionary?*keyedShit?=?@{?
????@this.key:?@corresponds?to?this?value,?
????@otherKey:?@remoteData.payload,?
????@some:?@more,?
????@JSON:?@keys,?
????@and:?@stuff,?
};?
每一行代码使用4个空格缩进。不使用tab缩进。下图是在Xcode的Preferences进行缩进设置的截图。
方法签名以及其他关键字(if/else/switch/while等)后面跟随的左花括号总是和语句出现于同一行,而右花括号独占一行。
良好的风格:
if?(user.isHappy)?{?
//Do?something?
}?
else?{?
//Do?something?else?
}?
如果一个方法内有多个功能区域,可以使用空行分隔功能区域。
每一行代码不要超过100个字符。
每一个方法之前都有一个99字符宽的注释行,注释行相对于使用空行更能提高代码的辨识度,当一行代码很长的时候,注释行也起到了越界检测的作用。注释行:
////////////////////////////////////////////////////
下页内容更精彩
条件语句
所有的逻辑块必须使用花括号包围,即使条件体只需编写一行代码也必须使用花括号。
良好的风格做法:
if?(!error)?{?
????return?success;?
}?
不良的风格:
if?(!error)?
????return?success;?
或:
if?(!error)?return?success;?
三元运算符
长的三元运算符应使用圆括号括起来。三元运算符仅用于赋值和做参数。
Blah?*a?=?(stuff?==?thing???foo?:?bar);?
合并的nil三元运算符应该尽量避免。
不良的风格:
Blah?*b?=?thingThatCouldBeNil??:?defaultValue;?
多分支条件应该使用if语句或重构为实例变量。
良好的风格:
result = a b ? x : y;
不良的风格:
result = a b ? x = c d ? c : d : y;
异常和错误处理
不要在流控制语句中使用异常(NSException)。
异常仅用于表明程序员的错误。
为了表明一个错误,使用NSError *。
当一个方法通过引用返回一个错误参数,应该检测返回值的状态,而不是错误参数的状态。
良好的风格:
NSError
文档评论(0)