命名可以统一的
无论在哪个xxx.m中:
凡是定义UITableView的命名都是tableView
凡是UITextField的命名都是textField
凡是表视图的数组命名都是dataBase
Get/Set方法放在最后
#pragma mark - Get/Set方法
- (NSMutableArray *)dataBase {
if(!_dataBase) {
_dataBase = [[NSMutableArray alloc] init];
}
return _dataBase;
}
@end
全部协议的方法放在同一个范围,#pragma mark - Delegate
#pragma mark - Delegate
#pragma mark -- UITableViewDataSource
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
#pragma mark -- UITableViewDelegate
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
尽量少用Block; 多用协议方法(大神博客都是这样说的)
1.Block扩展性低,比如突然增加一个方法又要增加一个Block
2.Block容易循环引用,在MJRefresh.h中的footerWithRefreshingBlock里面需要把self改为弱引用
3.(^)的写法楼主总是忘记了
属性NS头的用懒加载; 属性UI头的写生成方法
#import "ViewController.h"
@interface ViewController ()<UITableViewDataSource,UITableViewDelegate>
/** 表视图 */
@property (nonatomic,strong)UITableView *tableView;
/** 数据源 */
@property (nonatomic,strong)NSMutableArray *dataBase;
@end
@implementation ViewController
- (void)viewDidLoad {
[self createTableView];
}
#pragma mark - 设置UI
-(void)createTableView{
_tableView = [[UITableView alloc]initWithFrame:self.view.bounds style:(UITableViewStylePlain)];
[self.view addSubview:_tableView];
_tableView.dataSource = self;
_tableView.delegate = self;
}
#pragma mark - Get/Set方法
- (NSMutableArray *)dataBase {
if(!_dataBase) {
_dataBase = [[NSMutableArray alloc] init];
}
return _dataBase;
}
@end
公用方法,触发方法和接口方法各自放在同一个范围
#pragma mark - 触发方法
1. 手势的触发
2. 控制器的触发
#pragma mark - 公用方法
1. 公用的逻辑方法
2. 公用的UI布局方法
#pragma mark - 接口方法
1. 一堆接口方法
怎么写代码速度才速度快?
1. [UITableView alloc]initWithFrame:(CGRect) style:(UITableViewStyle)
(UITableViewStyle)参数回车或鼠标直接点击它,令它成(UITableViewStyle)后在e加P自动补全UITableViewStylePlain
2. 有人喜欢用FuzzyAutocompletePlugin代码自动补全
下载地址:<https://github.com/chendo/FuzzyAutocompletePlugin>
注释写多不会死的
/** 表视图 */
@property (nonatomic,strong)UITableView *tableView;
/** 增加按钮方法 */
-(void)addBtnDidClick{
NSLog(@"点击了增加按钮");
}
在.h文件中的声明顺序
1. 写属性
2. 写类方法
3. 写实例方法
4.写其他,比如协议方法(外国人说的)
* 值得注意的是strong不能省,虽然现在是默认是强引用类型,说不定以后苹果又改了默认(有更好的自动内存管理)
也有人喜欢UI和NS分开写,如下
@interface ViewController (){
/** 表视图 */
UITableView *_tableView;
}
/** 数据源 */
@property (nonatomic,strong)NSMutableArray *dataBase;
@end