居上位者,心要黑,剑也要黑。心够黑,才能审度真正的利益,剑够黑,才能决断必要的牺牲。
————古凌逝烟
如何提高自己敲代码的效率呢,合理的利用代码块是比复制还要方便的一种方法,此外也有助于提高代码的整洁度;将部分代码整理添加到代码块,在Xcode中使用时非常方便;
Xcode添加代码块
Xcode有自带的代码块,如我们一般常用的tydedef
;当然我们也可以添加自定义代码块,【鼠标选中一段代码,停留2秒,然后左键长按拖进Xcode自带的代码块区,拖入后弹出编辑框,可以编辑名称,描述和快捷方式等信息,点击Done完成,然后就可以使用当前添加的这条代码块】
;
Title:表示代码块的标题;
Summary:表示代码块的描述信息;
Platform:表示代码块可以使用的平台,默认即可;
Language:表示代码块可以使用的语言平台;
Completion Shortcut:表示代码块的快捷方式;
Completion Scopes:表示代码块的使用范围;
Xcode迁移代码块
Xcode中的代码块默认路径是:
~/Library/Developer/Xcode/UserData/CodeSnippets
可以将路径中的代码块,迁移到不同的电脑上使用,需重新启动Xcode ;
常用代码块
注释
方法集注释
#pragma mark —————<#注释#>—————
普通注释
/** <#注释#> */
————————————————————————————————————
/** <#注释#>
* <#注释#>
*/
————————————————————————————————————
/**
<#注释#>
@param <#注释#> <#注释#>
@param <#注释#> <#注释#>
@return <#注释#> <#注释#>
*/
@property属性声明
@property (nonatomic, <#copy#>) <#NSString#> *<#name#>; /** <#注释#> */
单例
static <#SingleObject#> *_singleInstance = nil;
+(instancetype)sharedInstance{
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
if (_singleInstance == nil) {
_singleInstance = [[self alloc]init];
}
});
return _singleInstance;
}
+(instancetype)allocWithZone:(struct _NSZone *)zone{
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
_singleInstance = [super allocWithZone:zone];
});
return _singleInstance;
}
-(id)copyWithZone:(NSZone *)zone{
return _singleInstance;
}
-(id)mutableCopyWithZone:(NSZone *)zone {
return _singleInstance;
}
懒加载
- (<#NSMutableArray *#>)<#name#> {
if (!<#name#>) {
<#name#> = <#[NSMutableArray array]#>;
}
return <#name#>;
}
圆角边框
<#view#>.layer.borderWidth = 1.0;
<#view#>.layer.borderColor = [UIColor grayColor].CGColor;
<#view#>.layer.cornerRadius = 10;
<#view#>.layer.masksToBounds = YES;
UIButton创建
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
button.frame = CGRectMake(0, 0, 44, 44);
[button setTitle:@"<#标题#>" forState:UIControlStateNormal];
[button setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
button.backgroundColor = <#[UIColor blueColor]#>;
[button addTarget:self action:@selector(buttonAction:) forControlEvents:UIControlEventTouchUpInside];
[<#self.view#> addSubview:button];
UITableView创建
#pragma mark —————<#UITableView#>—————
- (void)initWithTableView{
self.tableView.delegate = self;
self.tableView.dataSource = self;
self.tableView.rowHeight = <#50#>;
self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
[self.tableView registerNib:[UINib nibWithNibName:@"<#nibName#>" bundle:[NSBundle mainBundle]] forCellReuseIdentifier:@"<#cellID#>"];
}
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return 1 ;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return 10;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
<#UITableViewCell#> *cell = [tableView dequeueReusableCellWithIdentifier:@"<#cellID#>" forIndexPath:indexPath];
cell.selectionStyle = UITableViewCellSelectionStyleNone;
return cell;
}
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
}
UICollectionView创建
#pragma mark —————<#UICollectionView>#—————
- (void)initWithCollectionView{
self.collectionView.delegate = self;
self.collectionView.dataSource = self;
UICollectionViewFlowLayout *flowLayout = [[UICollectionViewFlowLayout alloc]init];
flowLayout.itemSize = CGSizeMake(10, 10);
flowLayout.sectionInset = UIEdgeInsetsMake(10, 10, 10, 10);
flowLayout.minimumLineSpacing = 5;
flowLayout.minimumInteritemSpacing = 5;
self.collectionView.collectionViewLayout = flowLayout;
[self.collectionView registerNib:[UINib nibWithNibName:@"<#nibName#>" bundle:[NSBundle mainBundle]] forCellWithReuseIdentifier:@"<#cellId#>"];
}
-(NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView{
return 1;
}
- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section{
return 10;
}
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath{
<#UICollectionViewCell#> * cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"<#cellId#>" forIndexPath:indexPath];
return cell;
}
- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath{
}
网友评论