一、代码布局一键规范
1、快速打开(Command + Shift + O)CTCardCell.m,记得进入Dev Mode(Command .)
2、看下 CTCardCell.m 顶部凌乱的属性列表
- @property (weak, nonatomic) IBOutlet UILabel *locationLabel;
- @property (strong, nonatomic) NSString *website;
- @property (weak, nonatomic) IBOutlet UIButton *fbButton;
- @property (weak, nonatomic) IBOutlet UIImageView *fbImage;
- @property (strong, nonatomic) NSString *twitter;
- @property (weak, nonatomic) IBOutlet UIButton *twButton;
- @property (weak, nonatomic) IBOutlet UILabel *webLabel;
- @property (weak, nonatomic) IBOutlet UIImageView *profilePhoto;
- @property (strong, nonatomic) NSString *facebook;
- @property (weak, nonatomic) IBOutlet UIImageView *twImage;
- @property (weak, nonatomic) IBOutlet UILabel *aboutLabel;
- @property (weak, nonatomic) IBOutlet UIButton *webButton;
- @property (weak, nonatomic) IBOutlet UILabel *nameLabel;
- @property (weak, nonatomic) IBOutlet UILabel *titleLabel;
3、创建一个自定义服务以执行脚本命令来实现属性的快速整齐地排列
步骤来设置:
(1)使用Spotlight来搜索Automator,并打开它
(2)然后点击File->New,并选择服务(service)一项
(3)在Actions筛选栏,输入shell,然后双击运行shell脚本Run Shell Script
(4)在新添加的服务的菜单栏上,检查Output replaces selected text
(5)将脚本内容切换至sort | uniq
(6)同时按下command s,将服务保存为 Sort & Uniq(排序(sort)是按照字母顺序来的,`uniq`是会删除所有重复的行数)
4、切回到Xcode,然后选中 CTCardCell.m 中的那片混乱的属性区域,右击,选择 Services -> Sort & Uniq,然后观察执行之后代码是多么的整洁。你可以看下面的一个示意图:
二、代码片段
1、在这一部分,你将学会如何创建自定义的代码片段,当你重用这些代码片段时,看起来非常棒。你将创建的是获取单例的代码片段
- + (instancetype)sharedObject {
- static id _sharedInstance = nil;
- static dispatch_once_t oncePredicate;
- dispatch_once(&oncePredicate, ^{
- _sharedInstance = [[self alloc] init];
- });
- return _sharedInstance;
- }
2、在工程CardTilt创建一个名为继承自NSObject名为SingletonObject的新类
按下面步骤:
(1)在 @implementation 的下一行粘贴上面的代码到 SingletonObject.m
(2)用快捷键Command Option Control 2来打开代码片段库,在代码片段库中你会看到默认的包含在Xcode中的代码片段库。
(3)选中整个+sharedObject方法,将其拖拽到代码片段库中。
新创建的代码片段将会在代码片段库的最底部,你可以将其拖拽到任何你想拖拽的文件当中去,让我们来尝试一下。
双击刚刚新建的代码片段,然后点击edit.弹出的视图非常使用,实际上它们都很重要,所以做个简短的解释。
(1)Title and Summary:代码片段库中该代码片段的名字和简述
(2)Platform and Language:代码片段匹配的平台和编程语言
(3)Completion Shortcut:在Xcode中输入的快捷键
(4)Completion Scopes:代码片段作用的范围,这对于保持代码片段库整洁来说十极好的。
向下面一样填充里面的属性:
三、令牌
在片段中仅仅只要输入 <#TokenName#> 就可以添加一个令牌,创建一个令牌使用 shared<#ObjectName#>替代sharedObject ,看起来像这样:
点击 Done 来保存该片段,然后来用用它。
在 SingletonObject.m 文件中输入 singleton accessor,然后当它出现的时候使用自动补全
对于经常使用的代码来说,创建一个代码片段是非常实用的。