Objective-C编码规范

本文详细介绍了Objective-C的编码规范,包括点标记语法、间隔问题、条件语句、三元运算符、错误处理、方法、变量等多个方面,旨在提高代码的可读性和一致性。遵循这些规范,有助于编写出高质量的Objective-C代码。
摘要由CSDN通过智能技术生成

这篇我是从这里翻译来的:https://github.com/NYTimes/objective-c-style-guide

在苹果公司提供的以下文档中有涉及到Objective-C编码规范的方方面面,我们可以在以下文档中找到我们需要知道的Objective-C编码规范:

点标记语法

建议使用”.”号设置和获取属性:

如:

view.backgroundColor = [UIColor orangeColor];
[UIApplication sharedApplication].delegate;

不建议:

[view setBackgroundColor:[UIColor orangeColor]];
UIApplication.sharedApplication.delegate;

间隔问题

缩进必须使用4个空格。不要使用tab键进行缩进。确保在xcode的偏好设置中设置这一偏好。
方法的大括号,以及其他的一些大括号(如if/else/switch/while等)都在声明的同一行打开,在新的一行关闭。

如:

if (user.isHappy) {
    // Do something
}
else {
    // Do something else
}

为了确保代码的美观整洁,以及组织性,在方法之间应该有一行空行。

方法内部的空行可以分隔功能,在这种情况下我们也许可以考虑将这个方法写成若干个更小的方法。

对于方法名冗长的方法,我们可以增加一条空白行来分离方法体与方法名。

@synthesize 和 @dynamic 每一个都应该在@implementation的新的一行中声明。

条件语句

为了避免错误,条件语句中的运行代码需要使用大括号包起来,就算可以不使用大括号的情况(例如只有一行)。否则在想为if语句执行体中添加一行新代码时,容易出错。 而且在执行体只有没有添加大括号的一行时,执行体中的那行代码被注释,导致下一行成为执行体时,情况更严重。
除此之外,这种风格与其它情况的条件语句更为一致,代码一致性,可读性更强。

例如:

if (!error) {
    return success;
}

而不要使用:

if (!error)
    return success;

//或者

if (!error) return success;

三元运算符

使用三元运算符 ? : 的目的在于让代码更简洁清晰。

三元运算符在每个表达式中应该只用于一个条件。如果用于多个条件会导致代码更加难以理解。

例如:

result = a > b ? x : y;

不要用成:

result = a > b ? x = c > d ? c : d : y;

错误处理

当方法通过应用返回一个error参数时, 代码必须在返回的值的基础上进行判断而不能在返回的error变量的基础上进行判断(code MUST switch on the returned value and MUST NOT switch on the error variable.--原文,不太会翻译)

例如:

NSError *error;
if (![self trySomethingWithError:&error]) {
    // Handle Error
}

不能:

NSError *error;
[self trySomethingWithError:&error];
if (error) {
    // Handle Error
}

因为有时候在成功的时候,一些苹果的API也会写一个垃圾值到error参数中,所以对error变量进行判断的话会导致错误判断(可能会引发后续的crash)。

方法

在方法声明中,需要在方法范围(”-“或”+”号)后面有一个空格。方法的每一节之间也应该有一个空格。

例如:

- (void)setExampleText:(NSString *)text image:(UIImage *)image;

变量

描述性地为变量命名,变量名

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值