一、熟悉Objective-C

1绷耍,了解oc 語言的起源

1吐限,oc 是c語言添加了面向對象特性,是其超集褂始。oc 使用動態(tài)綁定的消息結構诸典,也就是說,在運行時才會檢查對象類型崎苗。接受一條消息后狐粱,究竟應執(zhí)行何種代碼,由運行環(huán)境而非編譯器決定

2胆数,理解c語言的核心概念肌蜻,有助于寫好oc程序,尤其要掌握內存模型和指針

2必尼,在類的頭文件中盡量少引用其他頭文件

1蒋搜,除非確有必要,否則不要引入頭文件。一般來說豆挽,應在某個類的頭文件中使用‘向前聲明’來提及別的類酸休,并在實現(xiàn)文件中引入那些類的頭文件。這樣做可以盡量降低類之間的耦合祷杈。

2斑司, 有時無法使用‘向前聲明’, 比如要聲明某個類遵循一項協(xié)議但汞。這樣宿刮,盡量把 ‘該類遵循的某協(xié)議’ 的這條聲明移動到分類中,如果不行私蕾,就把協(xié)議單獨放在一個頭文件中僵缺,然后將其引入。

@class Student;

3踩叭,多用字面量語法磕潮,少用與之等價的方法

1, 應該使用字面量語法來創(chuàng)建字符串容贝、數值自脯、數組、字典斤富。與創(chuàng)建此類對象的常規(guī)方法相比膏潮,這么做更加的簡明扼要。

NSNumber *num = @0;

NSString *str = @"1234";

NSArray *arr = @[ @1, @"2123", @[] ];

NSMutableArray *mArr =[@[]mutableCopy];

NSDictionary*dic = @{@"1":@"12"};

NSObject*ob = arr[1];

NSObject*ob = dic[@"1233"];

這種 使用 @XX ?的方法满力,也叫作焕参,標簽指針,

如果是 NSString *str = @"1234232";

系統(tǒng)會盡可能把NSString是實現(xiàn)為單例對象油额。并且叠纷,上面的例子,還是個編譯器常量潦嘶,就沒有創(chuàng)建NSString對象

2涩嚣,用字面量語法創(chuàng)建數組或者字典是,若值中有nil衬以,則活拋出異常缓艳。因此,務必確保值里不含nil

4看峻,多用類型常量阶淘,少用 #define 預處理指令

1,不使用預處理指令定義常量互妓。這樣定義出來的常量不含類型信息溪窒,編譯器只是會在編譯前據此執(zhí)行查找和替換操作坤塞。及時有人重新定義了常量值,編譯器也不會產生警告信心澈蚌,這將導致應用長程序中的常量值不一致摹芙。

2, 在實現(xiàn)文件中使用 static const 來定義 ‘ 只在編譯單元內可見的常量 ’宛瞄。由于此類常量不在全局符號表中浮禾,所以無需為其名稱加前綴

-- > 在一個類中 ?最上面的引用 #import 下面 ?定義本類的靜態(tài)常量,應該使用 ?statci const 定義并賦值份汗,

例如:

static const int abc = 1;

如果需要在其他類中使用(需要引用這個類的頭文件)盈电, 需要使用 extern

并且需要在名稱前加上這個類的名字作為前綴,防止和其他類混淆

例如

在.h中聲明

extern NSString * const SceneTest2Msg;

extern int const SceneTest2Value;

在.m中定義并賦值

NSString * const ?SceneTest2Msg = @"123";

int const?SceneTest2Value = 1;

注意, const的位置杯活,常量是個指針匆帚,所以const 修飾名字

3,在頭文件中使用 extern 來聲明全局常量旁钧,并在相關文件中定義其值吸重。中中常量要出現(xiàn)在全局符號表中,所以其名稱應加以區(qū)隔歪今,通常用與之相關的類名做前綴

5嚎幸,用枚舉表示狀態(tài)、選項彤委、狀態(tài)碼

1,應該使用枚舉來表示狀態(tài)機的狀態(tài)鞭铆、傳遞給方法的現(xiàn)在呢以及狀態(tài)嗎等值,給這些值起個易懂的名字

typedef enum{

PhotosAccess = 1,

CameraAccess,

MicrophoneAccess

} AccessType;

2焦影,如果把傳遞給某個方法的選項表示為枚舉類型,而多個選項又可以同時使用封断,那么就想各選項定義為2的冪斯辰,以便通過按位或操作將其組合起來

typedef enum{

ViewStatueA ??????????? = 0,

ViewStatueB ??????????? = 1 << 0,

ViewStatueC ??????????? = 1 << 1,

ViewStatueD ??????????? = 1 << 2,

} ViewStatue;

self.valuestatue=ViewStatueA | ViewStatueB;

3,用 NS_ENUM 與 NS_OPTIONS宏來定義枚舉類型坡疼,并指明其底層數據類型彬呻。這樣做可以確保是用開發(fā)者所選的數據類型實現(xiàn)出來,而不會采用編譯器所選的類型

typedef NS_ENUM(NSUInteger, ConnectStatue) {

ConnectStatueDisconnected,

ConnectStatueConnecting,

ConnectStatueConnected,

};

typedef NS_OPTIONS(NSUInteger, AlignStatue) {

AlignStatueLeft ? ? ? ? ? = 0,

AlignStatueMiddle ????? = 1 << 0,

AlignStatueRight ? ? ? ? ?= 1 << 1,

};

4柄瑰, 在處理枚舉類型的switch語句中不用實現(xiàn)default分支闸氮。這樣的話,加入新枚舉之后教沾,編譯器就會提示開發(fā)者:switch語句并未處理所有枚舉

--- 》 ?刪除default 分支

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末蒲跨,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子授翻,更是在濱河造成了極大的恐慌或悲,老刑警劉巖孙咪,帶你破解...
    沈念sama閱讀 216,997評論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異巡语,居然都是意外死亡翎蹈,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,603評論 3 392
  • 文/潘曉璐 我一進店門男公,熙熙樓的掌柜王于貴愁眉苦臉地迎上來荤堪,“玉大人,你說我怎么就攤上這事枢赔〕窝簦” “怎么了?”我有些...
    開封第一講書人閱讀 163,359評論 0 353
  • 文/不壞的土叔 我叫張陵糠爬,是天一觀的道長寇荧。 經常有香客問我,道長执隧,這世上最難降的妖魔是什么揩抡? 我笑而不...
    開封第一講書人閱讀 58,309評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮镀琉,結果婚禮上峦嗤,老公的妹妹穿的比我還像新娘。我一直安慰自己屋摔,他們只是感情好烁设,可當我...
    茶點故事閱讀 67,346評論 6 390
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著钓试,像睡著了一般装黑。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上弓熏,一...
    開封第一講書人閱讀 51,258評論 1 300
  • 那天恋谭,我揣著相機與錄音,去河邊找鬼挽鞠。 笑死疚颊,一個胖子當著我的面吹牛,可吹牛的內容都是我干的信认。 我是一名探鬼主播材义,決...
    沈念sama閱讀 40,122評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼嫁赏!你這毒婦竟也來了其掂?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 38,970評論 0 275
  • 序言:老撾萬榮一對情侶失蹤橄教,失蹤者是張志新(化名)和其女友劉穎清寇,沒想到半個月后喘漏,有當地人在樹林里發(fā)現(xiàn)了一具尸體,經...
    沈念sama閱讀 45,403評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡华烟,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,596評論 3 334
  • 正文 我和宋清朗相戀三年翩迈,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片盔夜。...
    茶點故事閱讀 39,769評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡负饲,死狀恐怖,靈堂內的尸體忽然破棺而出喂链,到底是詐尸還是另有隱情返十,我是刑警寧澤,帶...
    沈念sama閱讀 35,464評論 5 344
  • 正文 年R本政府宣布椭微,位于F島的核電站洞坑,受9級特大地震影響,放射性物質發(fā)生泄漏蝇率。R本人自食惡果不足惜迟杂,卻給世界環(huán)境...
    茶點故事閱讀 41,075評論 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望本慕。 院中可真熱鬧排拷,春花似錦、人聲如沸锅尘。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,705評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽藤违。三九已至浪腐,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間顿乒,已是汗流浹背牛欢。 一陣腳步聲響...
    開封第一講書人閱讀 32,848評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留淆游,地道東北人。 一個月前我還...
    沈念sama閱讀 47,831評論 2 370
  • 正文 我出身青樓隔盛,卻偏偏與公主長得像犹菱,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子吮炕,可洞房花燭夜當晚...
    茶點故事閱讀 44,678評論 2 354

推薦閱讀更多精彩內容