Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

用于Xcode使用的iOS通用代码片段,其中也包含若干专用于QMUI iOS框架的代码片段。

License

NotificationsYou must be signed in to change notification settings

QMUI/QMUI_iOS_CodeSnippets

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

63 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

qmui-ios-codesnippets 是一个 QMUI 团队日常工作中整理出来的用于 Xcode 的 iOS 通用代码片段集,其中也包含若干专用于 QMUI for iOS 框架的代码片段。

整理这个代码片段集的初衷有以下几点:

  1. 我们发现由于 Xcode 本身的功能不足,导致我们经常在重写一些系统父类方法时容易忘了调用super,从而出现一些很难排查的诡异bug。
  2. Xcode 虽然有模糊匹配的代码提醒,但代码提醒只能帮你写方法名,而code snippets 还可以帮你填充一些默认的方法实现,或者直接移动光标到方法体内,省去几次光标操作。
  3. 一些常用的写法本身语法可能比较复杂,难以记忆,例如实现一个类的单例、使用swizzle 来重写系统控件的方法、block 在不同地方的语法不同等。
  4. 一些代码本身看似简单,但由于特别常用,所以使用 code snippets 可以大大节省时间。

使用方式

Xcode 的 Code Snippets 文件存放于~/Library/Developer/Xcode/UserData/CodeSnippets 目录,只要直接把*.codesnippets 文件放到这个目录下(若没有则自己创建),重启 Xcode 即可生效。

为了方便更新,建议直接将 QMUI iOS CodeSnippets clone 到这个目录内(注意,不是在 CodeSnippets 里创建一个 QMUI 的目录,这里不支持子目录):

cd~/Library/Developer/Xcode/UserData/CodeSnippets

CodeSnippets 目录为空:

git clone https://github.com/QMUI/QMUI_iOS_CodeSnippets.git ./

CodeSnippets 目录不为空:

git init.git remote add origin https://github.com/QMUI/QMUI_iOS_CodeSnippets.gitgit pull origin master

其中以QM_ 前缀开头的文件是通用的 Code Snippets,以QMUI_ 前缀开头的文件是专用于QMUI for iOS 框架的代码片段。在下方的快捷键汇总里,QMUI 的代码片段将会以QMUI的形式标记出来。

注意,Xcode 对每一段 Code Snippet 都有规定适用的语言(Objective-C、Objective-C++、Swift、...)和作用域(如 Class 的 Interface 定义内、Class 的 Implementation 内、方法体内、...),所以测试某段 Code Snippet 不生效时请注意你当前是否处于不匹配的位置。

快捷键汇总

NSObject

  • pa - 定义一个assign 的 property
  • par - 定义一个assign, readonly 的 property
  • pc - 定义一个copy 的 property
  • pcr - 定义一个copy, readonly 的 property
  • ps - 定义一个strong 的property
  • psr - 定义一个strong, readonly 的property
  • pw - 定义一个weak 的property
  • pwr - 定义一个weak, readonly 的property
  • load_once - 创建一个带dispatch_once+load 方法
  • propertySwizzleAssign - 用swizzle 的方式定义一个assign 的property
  • propertySwizzleCopy - 用swizzle 的方式定义一个copy 的property
  • propertySwizzleStrong - 用swizzle 的方式定义一个strong 的property
  • propertySwizzleWeak - 用swizzle 的方式定义一个weak 的property
  • sharedInstance - 为当前类创建一个实现单例功能的sharedInstance 方法
  • exchangeImplementation - 重写当前类的load 方法并在其中用swizzle 替换方法实现
  • exchangeImplementation_QMUI - 用 QMUI 重写当前类的load 方法并用ExchangeImplementations() 函数替换方法的实现
  • exchangeMultipleImplementations_QMUI - 用 QMUI 重写当前类的load 方法并用ExchangeImplementations() 函数批量替换多个方法的实现
  • override_void_non_argv - 用 QMUI 的OverrideImplementation() 重写指定 class 的某个无返回值、无参数的方法实现
  • override_void_single_argv - 用 QMUI 的OverrideImplementation() 修改指定 class 的某个无返回值、带一个参数的方法实现
  • override_void_two_argvs - 用 QMUI 的OverrideImplementation() 修改指定 class 的某个无返回值、带两个参数的方法实现
  • override_return_non_argv - 用 QMUI 的OverrideImplementation() 修改指定 class 的某个带返回值、无参数的方法实现
  • override_return_single_argv - 用 QMUI 的OverrideImplementation() 修改指定 class 的某个带返回值、带一个参数的方法实现
  • override_return_two_argvs - 用 QMUI 的OverrideImplementation() 修改指定 class 的某个带返回值、带两个参数的方法实现
  • extend_void_non_argv - 用 QMUI 的ExtendImplementationOfVoidMethodWithoutArguments() 修改指定 class 的某个无返回值、无参数的方法实现
  • extend_void_single_argv - 用 QMUI 的ExtendImplementationOfVoidMethodWithSingleArgument() 修改指定 class 的某个无返回值、带一个参数的方法实现
  • extend_void_two_argvs - 用 QMUI 的ExtendImplementationOfVoidMethodWithTwoArguments() 修改指定 class 的某个无返回值、带两个参数的方法实现
  • extend_return_non_argv - 用 QMUI 的ExtendImplementationOfNonVoidMethodWithoutArguments() 修改指定 class 的某个带返回值、无参数的方法实现
  • extend_return_single_argv - 用 QMUI 的ExtendImplementationOfNonVoidMethodWithSingleArgument() 修改指定 class 的某个带返回值、带一个参数的方法实现
  • extend_return_two_argvs - 用 QMUI 的ExtendImplementationOfNonVoidMethodWithTwoArguments() 修改指定 class 的某个带返回值、带两个参数的方法实现

Block

  • blockParameterInMethod - 声明一个用于 OC 方法参数的 block
  • blockParameterInFunction - 声明一个用于 C 函数参数的 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() 修改UIViewframe.origin.x
  • setFrameY - QMUI 使用CGRectSetY() 修改UIViewframe.origin.y
  • setFrameXY - QMUI 使用CGRectSetXY() 修改UIViewframe.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

  • initWithNib - 展开initWithNibName:bundle: 方法
  • didInitialize - 展开某些 QMUI 控件提供的didInitialize 方法
  • didInitializeWithStyle - 展开 QMUICommonTableViewController 的didInitializeWithStyle: 方法
  • 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 方法
  • setupNavigationItems - QMUI 重写QMUICommonViewController 里的setupNavigationItems 方法
  • setupToolbarItems - QMUI 重写QMUICommonViewController 里的setupToolbarItems 方法

UIBarButtonItem

  • backItem - 用 QMUI 方法生成一个返回按钮
  • boldTitleItem - 用 QMUI 方法生成一个文字加粗的导航栏按钮
  • closeItem - 用 QMUI 方法生成一个导航栏上的关闭图标按钮
  • imageItem - 用 QMUI 方法生成一个导航栏上的图片按钮
  • titleItem - 用 QMUI 方法生成一个导航栏上的文字按钮

Other

  • pragma - 展开一个用于 Xcode 导航的#pragma mark -
  • log - 展开NSLog(@"xxx")
  • osif - 展开一个 @available(iOS xxx, *) 的 if 判断
  • externRefInH - 在*.h 文件里声明一个extern const 的指针
  • externRefInM - 在*.m 文件里为一个extern const 的指针赋值
  • externValueInH - 在*.h 文件里声明一个extern const 的值变量
  • externValueInM - 在*.m 文件里为一个extern const 的变量赋值
  • static reference - 定义一个static 的指针
  • static - 定义一个static 的值变量
  • __weakSelf - 定义一个weakself 指针
  • __strongSelf - 将weakSelf 指针改为strongself 指针
  • logCallStackSymbols - 用NSLog 打出当前的方法调用栈信息
  • timeConsuming - 展开一段用CACurrentMediaTime() 来计算方法耗时的代码

About

用于Xcode使用的iOS通用代码片段,其中也包含若干专用于QMUI iOS框架的代码片段。

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors3

  •  
  •  
  •  

[8]ページ先頭

©2009-2025 Movatter.jp