iOS 代碼規(guī)范 之 Objective - C

以下內(nèi)容整理于我一位好朋友 性感小胡須

他的博客
他的github

文件夾的創(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
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市俱诸,隨后出現(xiàn)的幾起案子菠劝,更是在濱河造成了極大的恐慌,老刑警劉巖睁搭,帶你破解...
    沈念sama閱讀 217,406評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件赶诊,死亡現(xiàn)場離奇詭異,居然都是意外死亡园骆,警方通過查閱死者的電腦和手機舔痪,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,732評論 3 393
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來锌唾,“玉大人锄码,你說我怎么就攤上這事夺英。” “怎么了滋捶?”我有些...
    開封第一講書人閱讀 163,711評論 0 353
  • 文/不壞的土叔 我叫張陵痛悯,是天一觀的道長。 經(jīng)常有香客問我重窟,道長载萌,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,380評論 1 293
  • 正文 為了忘掉前任巡扇,我火速辦了婚禮扭仁,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘霎迫。我一直安慰自己斋枢,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,432評論 6 392
  • 文/花漫 我一把揭開白布知给。 她就那樣靜靜地躺著瓤帚,像睡著了一般。 火紅的嫁衣襯著肌膚如雪涩赢。 梳的紋絲不亂的頭發(fā)上戈次,一...
    開封第一講書人閱讀 51,301評論 1 301
  • 那天,我揣著相機與錄音筒扒,去河邊找鬼怯邪。 笑死,一個胖子當(dāng)著我的面吹牛花墩,可吹牛的內(nèi)容都是我干的悬秉。 我是一名探鬼主播,決...
    沈念sama閱讀 40,145評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼冰蘑,長吁一口氣:“原來是場噩夢啊……” “哼和泌!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起祠肥,我...
    開封第一講書人閱讀 39,008評論 0 276
  • 序言:老撾萬榮一對情侶失蹤武氓,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后仇箱,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體县恕,經(jīng)...
    沈念sama閱讀 45,443評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,649評論 3 334
  • 正文 我和宋清朗相戀三年剂桥,在試婚紗的時候發(fā)現(xiàn)自己被綠了忠烛。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,795評論 1 347
  • 序言:一個原本活蹦亂跳的男人離奇死亡权逗,死狀恐怖况木,靈堂內(nèi)的尸體忽然破棺而出垒拢,到底是詐尸還是另有隱情旬迹,我是刑警寧澤火惊,帶...
    沈念sama閱讀 35,501評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站奔垦,受9級特大地震影響屹耐,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜椿猎,卻給世界環(huán)境...
    茶點故事閱讀 41,119評論 3 328
  • 文/蒙蒙 一惶岭、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧犯眠,春花似錦按灶、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,731評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至量蕊,卻和暖如春铺罢,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背残炮。 一陣腳步聲響...
    開封第一講書人閱讀 32,865評論 1 269
  • 我被黑心中介騙來泰國打工韭赘, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人势就。 一個月前我還...
    沈念sama閱讀 47,899評論 2 370
  • 正文 我出身青樓泉瞻,卻偏偏與公主長得像,于是被迫代替她去往敵國和親苞冯。 傳聞我的和親對象是個殘疾皇子袖牙,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,724評論 2 354

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,110評論 25 707
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn)抱完,斷路器贼陶,智...
    卡卡羅2017閱讀 134,654評論 18 139
  • iOS編程規(guī)范0規(guī)范 0.1前言 為??高產(chǎn)品代碼質(zhì)量,指導(dǎo)廣大軟件開發(fā)人員編寫出簡潔、可維護巧娱、可靠碉怔、可 測試、高效...
    iOS行者閱讀 4,459評論 21 35
  • 前言 Objective-C-Coding-Guidelines-In-Chinese Objective-C編碼...
    有毒的程序猿閱讀 951評論 0 6
  • 刷朋友圈的時候,刷到一個高中同學(xué)的狀態(tài)老翘。 “分手快樂芹啥《屠耄” 算了算,他們大概已經(jīng)差不多四年墓怀,要是算上初中那會兒的小曖...
    HZASBRO閱讀 176評論 3 2