//
// AppDelegate.m
// LeFit
//
// Created by Zhang Wen on 15-3-22.
// Copyright (c) 2015 Appscomm LLC. All rights reserved.
//
// Frameworks
@import QuartzCore;
// Models
#import "NYTUser.h"
// Views
#import "NYTButton.h"
#import "NYTUserView.h"
/**
<#Description#>
@param tableView <#tableView description#>
@param section <#section description#>
@return <#return value description#>
*/
- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section {
return [self.familyNames objectAtIndex:section];
}
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
//TODO: 增加初始化
return YES;
}
- 运算符前后前后各一个空格
- *号紧贴属性名,和类名之间隔一个空格
NSString *text = @"hello world";
- 括号前后各一个空格
- 属性修饰符和前面的,隔一个空格
@property (nonatomic, strong) UITableView *tableView;
- 当参数过长的时候,没个参数占用一行,且按照冒号对齐。
- 在声明类方法或者实例方法的时候,“+”或者“-”和返回值之间保留一个空格,
且返回值和方法名的第一个字母之间不要留空格。
-(void)doSomethingWithName:(NSString *)name
rect:(CGRect)rect;
- 注释一般放在.h,.m文件尽量减少注释
单行的用//+空格开头,多行的采用/* */注释
//TODO: 用来注释没有完成的功能
#warning 用来标记自己的debug修改,以免遗漏
哪里需要注释:
1. 在某个变量、属性、或者方法不能够直接从名字得知其用途时。
2. 区分代码区时(在常量文件和控制器类的.h文件和.m文件里)。
3. 在不相关的业务处理交叉点。
4. 文件的基本信息
5. 有疑惑的地方(FIXME)
6. 未完成或者待优化的地方。(#waring //TODO:)
7. 声明枚举时应该对每个值说明。
8. 修改别人代码的时候。
9. 编写API时,一般需要对所有的接口和属性带上注释
注释需要注意:
1. 不要为了注释而注释,请只在关键点注释
2. 划分代码块最好的方式不一定是注释,有时候使用空行也可以达到很好的效果。
- 初始化
在初始化方法中,不要将变量初始化为“0”或“nil”,那是多余的,
内存中所有的新创建的对象(isa除外)都是0,所以不需要重复初始化 为 “0”或“nil”;
对nil的检查
仅在有业务逻辑需求时检查nil,而非为了防止崩溃。
- 组件的创建,应该使用代码块或者懒加载的方式(我习惯用代码块)
- 建议项目统一使用Masonry的方式布局。不允许出现直接设置frame的情况。
xib的使用,尽量减少拉约束的情况