以下內(nèi)容整理于我一位好朋友 性感小胡須
文件夾的創(chuàng)建規(guī)范: 按功能模塊創(chuàng)建文件夾,子文件夾按MVC
分
枚舉的寫法, 參照Apple
的寫法,查看UIView.h
即可
.h 中的規(guī)范
#import <UIKit/UIKit.h>
@interface ViewController : UIViewController {
UIView *_myView; // 方便查看枚舉的寫法,點進去之后往上翻即可看到
}
// 頭文件聲明的方法阵幸,注釋寫詳細(xì)
/**
* 初始化
*
* @param item 課程內(nèi)容
*/
- (void)initWithCourseModel:(NSObject *)CourseModel;
@property (nonatomic, strong) NSObject *object;
// Xcode7.0之后 NSArray<NSDate *>
// Xcode7.0之前挂绰,在注釋中寫明數(shù)組里面的元素類型 喘鸟,如 :[NSDate]
// @property (nonatomic, strong) NSArray<NSDate *> *dates;
寫注釋的時候盡量表明用意和想法,不要直白的翻譯扮念。
原則上是每一個方法都需要寫注釋的,有些直接通過方法名就能看出來的可以不用寫注釋
初始化方法的返回類型碧库,建議寫instancetype柜与, 不建議寫id.
// 常量定義,不要寫宏
static NSString *const reuseID = @"reuseID";
static CGFloat const topMargin = 8.f;
.m 中的規(guī)范
@interface ViewController ()
// 一嵌灰、屬性
// 屬性命名: 命名盡量和業(yè)務(wù)相關(guān)
// 屬性和實例變量均可弄匕,注意寫注釋就OK了
/** 屬性注釋 */
@property (nonatomic, strong) NSObject *object1;
// 盡量不用或少用懶加載, 如果實在要用,希望在注釋中寫明
/** xx屬性(懶加載) */
@property (nonatomic, strong) NSObject *lazyProperty;
// 訪問屬性
// 統(tǒng)一_xxx訪問
// 特殊情況: init和dealloc里面務(wù)必使用 _xxx 訪問
@end
@implementation ViewController {
// 變量命名注意以 _ 開頭
NSObject *_instanceVar; ///< 實例變量注釋
}
// 一沽瞭、控制器代碼組織
#pragma mark - Life Cycle
- (instancetype)init {
self = [super init];
if (self) {
//...配置
}
return self;
}
- (void)dealloc {} //這個放前面迁匠,移除通知和KVO之類的,看得更清晰
- (void)loadView {} //這個一般用不到
- (void)viewDidLoad {
}
// ....
- (void)viewDidAppear:(BOOL)animated {}
#pragma mark - Init View // 主要初始化一些視圖之類的
#pragma mark - Network Request // 網(wǎng)絡(luò)請求
// 系統(tǒng)協(xié)議放前面驹溃,自定義協(xié)議放后面
#pragma mark - UITableViewDelegate
#pragma mark - CustomDelegate
#pragma mark - Event Response // 按鈕點擊城丧,手勢響應(yīng)之類的
#pragma mark - Private Methods // 封裝的一些內(nèi)部調(diào)用方法
#pragma mark - Public Methods // 可供外部調(diào)用的接口
#pragma mark - Getters And Setters // 這個就不多說了。存取
二豌鹤、方法風(fēng)格.
// 建議, 注意表明第一個參數(shù)的意思
- (void)getxxxDataWithUid:(id)uid xxx:(id)xxx {
}
// 不建議, 這里當(dāng)你調(diào)用的時候不知道getxxxData后面跟的是啥參數(shù)亡哄,語意不清。
- (void)getxxxData:(id)uid xxx:(id)xxx {
}
// 按鈕點擊, 統(tǒng)一以onClick開頭
- (void)xxxButtonClick:(UIButton *)sender {
}
// 三傍药、其他
- (void)test {
NSDictionary *dict2 = [NSDictionary dictionaryWithObjectsAndKeys:@"value", @"key", nil];
NSArray *array2 = [NSArray arrayWithObjects:@"1", @"2", nil];
NSMutableDictionary *mtbDict2 = [NSMutableDictionary dictionary];
[mtbDict2 setValue:@"value1" forKey:@"key1"];
// if語句
BOOL condition = YES;
if (condition) {
} else {
}
}
如果你覺得我的文章對你有幫助磺平,向我發(fā)個紅包吧!
我將衷心德感謝你對我的支持拐辽!你的支持就是我的動力拣挪!
微信掃碼向我發(fā)紅包
微信.jpeg
支付寶掃碼向我發(fā)紅包
支付寶.jpeg