接着上篇继续拓展http://www.jianshu.com/p/cf5a8f09e887
1 添加必要的注释,更加方便维护
我想提到的是 TODO,MARK,FIXME 这个三个标记
分别标记着
(1)我们将要实现的功能
(2)标记的代码段
(3)修复的bug
- (void)viewDidLoad {
[super viewDidLoad];
//TODO: 将要实现的功能
//MARK: 做标记
//FIXME: 修复的bug
}
这样也会更新响应的方法的下拉列表
2 使用/// 来注释属性或者方法,更加方便阅读
我们来对比一下这几种注释
#import <UIKit/UIKit.h>
@interface YBOrderUnCompleteVC : UIViewController
/// 订单id
@property (nonatomic, strong) NSString* orderId;
// 订单号
@property (nonatomic, strong) NSString* orderNo;
/** 订单名 */
@property (nonatomic, strong) NSString* orderName;
@end
这三种注释都是比较常用的注释方法,但是会有啥区别呢
我们尝试new YBOrderUnCompleteVC的对象,来使用到这些属性会有什么区别
我们可以明显的发现第一种 和第三种 注释的方式 xcode 是有给属性的注释的提示的,然而第二种 的注释,却是没有提示的
接着在来对比 第一种注释 /// 订单名 和 /** 订单名 */ 一个很明显的地方就是/// 是可以容易打出来的对比第三种注释 以此更加推荐使用 ///
3 注意代码的排版
(1)不要漏掉一些空格
要想写出来看起来很舒服的代码,那么我们尽量保持与苹果定义方法和语句一致了我们先来看看定义方法需要注意什么
通过截图我们可以注意到苹果定义方法的习惯是怎么样的
-空格(void)viewDidLoad空格{
}
因此该空格的时候我们就需要记得加空格,当然加了也感觉到代码是没有这么拥挤,看起舒服很多,因此还是跟随苹果的脚步吧,在来看一些常规的语句
我们可以注意到 其实可以比较容易找到规律,一般() 或者{} 都是有空格的
在举个例子 适当的空格的代码看起来更加舒服整洁
//
YBOrderUnCompleteVC *unCompleteVc = [YBOrderUnCompleteVC new];
unCompleteVc.orderId = @"xxxxxx";
unCompleteVc.orderNo = @"xxxxxx";
unCompleteVc.orderName = @"xxxxxx";
(2)注意写属性的排版
#import <UIKit/UIKit.h>
@interface YBOrderUnCompleteVC : UIViewController
/// 订单id
@property (nonatomic, strong) NSString* orderId;
// 订单号
@property (nonatomic, strong) NSString* orderNo;
/** 订单名 */
@property (nonatomic, strong) NSString* orderName;
@end
利用签名的案例的排版,基本上我们大部分的属性都是nonatomic不需要原子性的因此个人更加建议nonatomic 写在左边
也就是大概这么一个样式
@property (nonatomic, xxxx) xxx* xxx;
4 定义快捷代码段
定义快捷代码段还是有很多好处的
(1) 提高码速
(2) 有整齐化一的排版
下面我们gif 图如何定义快捷代码段
看到上面的gif 图的可以看到快速定义代码段主要分为以下几步
(1) 写一段你想快速定义的代码段
(2) 拖到右下角的窗口,然后在在定义的代码部分用<#name#>代替
(3) 直接输入快捷定义代码段的关键字
我们在拓展一下我们的思维就知道这个大有用处,特别在类似tableView 和collectionView 这些要重复去写代理和数据源可以用快捷代码段就可以列出来,然后慢慢在去修改。另外前面提到要注意的代码书写规范的问题,都可以使用定义快捷代码段来定义一套规范的快捷代码段
5.自定义xcode 模板
如上图利用#pragma mark - xxxx 的注释
把我们杂乱文章的代码有条理的整理好,不仅可以写出更有条不紊的代码,并且整个团队使用同一个模板,维护起来也更加便利,风格也更加统一。另外在右上角的下拉列表快捷查找到分类的方法
简单的解释几个常用分类的意思
// 生命周期
#pragma mark - Life Cycle
// 初始化方法
#pragma mark - Initial Function
// 响应事件方法
#pragma mark - Event Response
// 通知的回调
#pragma mark - --Notification Event Response
// 按钮点击响应方法
#pragma mark - --Button Event Response
// 手势点击响应方法
#pragma mark - --Gesture Event Response
// 系统代理,例如tableview 代理
#pragma mark - System Delegate
// 自定义一些控件的代理
#pragma mark - Custom Delegate
// 公开可以调用的方法
#pragma mark - Public Function
// 内部调用的方法
#pragma mark - Private Function
// 一般放懒加载方法
#pragma mark - --Getter
// setter方法
#pragma mark - --Setter
当然定义怎样的模板每个人或者说每个团队都有自己的定义,只要有条理即可,那么来看一下怎么自定义这个xcode模板呢 百度可以找到相关的文章我也找到一篇
http://www.cocoachina.com/ios/20170419/19087.html
/// 文章转载请写明出处