Xcode为我们提供了一种可以快速输入一段代码的快捷方式,这里对如何通过自定义快捷代码片段来提升开发效率进行一个总结
如何创建自定义代码片段
在Xcode的右下角有一个代码片段区域,如图所示:

QQ20171102-163351.png
这里面已经有了很多代码片段,这些代码片段是Xcode为我们提前准备的。
我们先来看一看里面的结构,点开第一个代码片段
C Block typedef - Define a block as a type,这个代码片段是我们通常用来给一个block声明一个别名的
QQ20171102-163706.png
如图所示的代码片段有很多很多,感兴趣的可以自己去看一看,接下来就是本文的重点,如何创建属于我们的代码片段呢?
- 在编辑区写上你要添加的片段代码
-
将代码选中拖拽到Code Snippets区域
QQ20171102-165121.png - 在弹框里对代码片段进行编辑,将想要方便更换的内容以
<# #>包裹,对应的内容就是可变内容啦
QQ20171102-170317.png - 在
Completion Shortcut一栏中可以填入快捷标记 -
完成以上步骤后,我们在需要使用相关代码片段时只需要输入快捷标记就能选中啦
QQ20171102-170644.png
常用代码片段
腾讯QMUI Team开源了一个他们经常使用的代码片段,非常好用,大家可以直接去下载,存放在~/Library/Developer/Xcode/UserData/CodeSnippets目录下
快捷键汇总
NSObject
-
pa- 定义一个assign的 property -
pc- 定义一个copy的 property -
ps- 定义一个strong的property -
psr- 定义一个strong, readonly的property -
pw- 定义一个weak的property -
propertySwizzleAssign- 用swizzle的方式定义一个assign的property -
propertySwizzleCopy- 用swizzle的方式定义一个copy的property -
propertySwizzleStrong- 用swizzle的方式定义一个strong的property -
propertySwizzleWeak- 用swizzle的方式定义一个weak的property -
sharedInstance- 为当前类创建一个实现单例功能的sharedInstance方法 -
replaceMethod- 重写当前类的load方法并在其中用swizzle替换方法实现 -
replaceMethod_QMUI- QMUI 重写当前类的load方法并用ReplaceMethod()函数替换方法的实现
Block
-
blockArguments- 声明一个用于方法参数的 block -
blockproperty- 声明一个用于 property 的 block -
blocktypedef- 用typedef定义一个 block -
blockvar- 定义一个作为局部变量的 block
Method & Function
-
fnv- 定义一个返回值为void的方法 -
fnv:- 定义一个返回值为void且带参数的方法 -
fnblock- 定义一个返回值类型为 block 的方法 -
fnv_handleEvent- 定义一个用于UIControl事件回调的方法 -
fnv_longPress- 定义一个用于UILongPressGestureRecognizer的回调方法(你就不用每次都去拼写那个很长的手势名字了) -
fnv_pan- 定义一个用于UIPanGestureRecognizer的回调方法 -
fnv_tap- 定义一个用于UITapGestureRecognizer的回调方法
UIView
-
setFrame- 为UIView设置frame -
setFrame_QMUI- QMUI 使用像素对齐的CGRectFlatMake()为UIView设置frame -
setFrameX- QMUI 使用CGRectSetX()修改UIView的frame.origin.x -
setFrameY- QMUI 使用CGRectSetY()修改UIView的frame.origin.y -
setFrameXY- QMUI 使用CGRectSetXY()修改UIView的frame.origin -
sizeThatFits- 为当前 view 创建sizeThatFits:方法 -
layoutSubviews- 展开layoutSubviews方法 -
updateConstraints- 展开updateConstraints方法 -
getWidth- 展开CGRectGetWidth() -
getHeight- 展开CGRectGetHeight() -
getMinX- 展开CGRectGetMinX() -
getMinY- 展开CGRectGetMinY() -
addtarget- 调用UIControl addTarget:action:forEvents:方法 -
setImageForButton- 为UIButton设置图片 -
setTitleColorForButton- 为UIButton设置文字颜色 -
setTitleForButton- 为UIButton设置文字
UITableView
-
initWithStyle- 展开initWithStyle:方法 -
initWithStyleForCell- 展开UITableViewCell initWithStyle:reuseIdentifier:方法 -
tableViewDelegate- 展开常用的几个UITableViewDelegate方法 -
numberOfSectionsInTableView- 展开numberOfSectionsInTableView:方法 -
numberOfRowsInSection- 展开tableView:numberOfRowsInSection:方法 -
cellForRowAtIndexPath- 展开tableView:cellForRowAtIndexPath:方法 -
heightForRowAtIndexPath- 展开tableView:heightForRowAtIndexPath:方法 -
didSelectRowAtIndexPath- 展开tableView:didSelectRowAtIndexPath:方法
UICollectionView
-
collectionViewDelegate- 展开常用的几个UICollectionViewDelegate方法 -
numberOfSectionsInCollectionView- 展开numberOfSectionsInCollectionView: -
numberOfItemsInSection- 展开collectionView:numberOfItemsInSection: -
cellForItemAtIndexPath- 展开collectionView:cellForItemAtIndexPath: -
sizeForItemAtIndexPath- 展开collectionView:layout:sizeForItemAtIndexPath:方法 -
didSelectItemAtIndexPath- 展开collectionView:didSelectItemAtIndexPath:方法 -
didDeselectItemAtIndexPath- 展开collectionView:didDeselectItemAtIndexPath:方法
UIViewController
-
loadView- 展开loadView方法 -
viewDidLoad- 展开viewDidLoad方法 -
viewWillAppear- 展开viewWillAppear:方法 -
viewDidAppear- 展开viewDidAppear:方法 -
viewWillDisappear- 展开viewWillDisappear:方法 -
viewDidDisappear- 展开viewDidDisappear:方法 -
viewDidLayoutSubviews- 展开viewDidLayoutSubviews:方法 -
updateViewConstraints- 展开updateViewConstraints:方法 -
addChildViewController- 在当前UIViewController里添加childViewController -
removeFromParentViewController- 将childViewController从当前的UIViewController里移除 -
initSubviews- QMUI 展开initSubviews方法 -
setNavigationItems- QMUI 重写QMUICommonViewController里的setNavigationItemsIsInEditMode:animated:方法 -
setToolbarItems- QMUI 重写QMUICommonViewController里的setToolbarItemsIsInEditMode:animated:方法 -
leftBarButtonItemImage- QMUI 用QMUINavigationButton的方法创建一个用于navigationItem.leftBarButtonItem的UIBarButtonItem -
rightBarButtonItemImage- QMUI 用QMUINavigationButton的方法创建一个用于navigationItem.rightBarButtonItem的UIBarButtonItem
Other
-
pragma- 展开一个用于 Xcode 导航的#pragma mark -宏 -
externRefInH- 在*.h文件里声明一个extern const的指针 -
externRefInM- 在*.m文件里为一个extern const的指针赋值 -
externValueInH- 在*.h文件里声明一个extern const的值变量 -
externValueInM- 在*.m文件里为一个extern const的变量赋值 -
static reference- 定义一个static的指针 -
static- 定义一个static的值变量 -
__weakSelf- 定义一个weak的self指针 -
__strongSelf- 将weakSelf指针改为strong的self指针 -
logCallStackSymbols- 用NSLog打出当前的方法调用栈信息 -
timeConsuming- 展开一段用CACurrentMediaTime()来计算方法耗时的代码



