ticoAg/ChineseCorpus-Kaggle-fanti huggingface dataset:
# 北漢：968年8月23日，北漢皇帝劉鈞逝世，養子劉繼恩繼位。9月10日，太祖命客省使盧懷忠等二十二人領兵屯駐潞州，準備趁喪攻伐北漢，兩天後，命義軍節度使李繼勳領兵進入漢境，於洞過河擊敗北漢軍，斬殺二千餘人，獲戰馬五百匹，進圍北漢都城太原（今山西省太原市）。同時，北漢皇帝劉繼恩因與權臣郭無為政爭失敗而遭弒殺，劉繼恩胞弟劉繼元繼立皇帝，立即上表請求契丹出兵援救。11月，契丹援軍抵達，宋軍撤退，北漢軍趁機侵入宋境，擄掠居民而回。首次討伐北漢失利。969年2月26日，太祖命宣徽南院使曹彬、侍衛步軍都指揮使黨進等將領兵征伐北漢。3月1日，太祖下詔親征。3月7日，御駕自京城出發，大軍於十一天後到達潞州，因雨停駐。漢將劉繼業、馮進珂屯兵於團柏谷，遣偵騎往來巡邏，遭宋軍前鋒部隊擊敗，劉繼業等退回太原，宋軍遂包圍太原城。4月4日，潞州雨停，太祖率軍出發，六天後，抵達太原城下，下令於太原城外築長城牆，藉以圍困城池，絕其外援；又下令堵塞汾水，使之壅積，並於隔日決堤，水灌太原城，洪水從城門灌入城中，北漢派人緊急設置障礙填補，宋軍則頻射弓箭阻撓，使其無法施工，但不久即有成堆的草隨洪水漂流至決口處，使宋軍箭矢無法穿透，北漢便趁此堵住決口。宋軍久攻太原不下，將領多有死傷，加上部隊駐紮於甘草地上，正值盛暑大雨，疫疾橫生，將士多染病腹瀉，太常博士李光贊上奏建議退兵，趙普贊同，太祖便下令退兵。第二次討伐北漢亦失利。
# 南漢：征北漢失利後，太祖重拾「先南後北」策略。970年10月3日，詔令潭州防禦使潘美、朗州團練使尹崇珂、道州刺史王繼勳等將率兵討伐南漢，圍攻賀州（今廣西壯族自治區賀州市）。南漢皇帝劉鋹遣伍彥柔往援，遭宋軍擊潰，兵敗身死，賀州投降。隔年（971年）1月，宋軍進攻韶州（今廣東省韶關市），擊破漢將李承渥的大象陣，攻陷韶州，並相繼攻克英州（今廣東省清遠市英德市）、雄州（今廣東省韶關市南雄市），南漢韶州刺史辛延渥派人勸劉鋹投降，劉鋹不從，下令準備十多艘船裝載金銀財寶及妃嬪宮女，將出海逃亡，卻遭宦官及衛士盜其船而開走，劉鋹大懼，遣使請降又不獲準，只得堅守。3月3日，宋軍擊斬漢將植廷曉，並火燒位於馬徑（今廣東省佛山市南海區西北）的南漢軍營柵，南漢軍大敗，主帥郭崇岳戰死。劉鋹聽聞兵敗，便縱火焚燒宮殿府庫，成為灰燼。隔日，劉鋹素服出降，南漢滅亡。
# 南唐：974年10月9日，太祖命宣徽南院使曹彬等將率兵赴荊南，隔日又遣山南東道節度使潘美等將也赴荊南屯駐。11月4日，曹彬等將領兵出發荊南，直往南唐國都金陵（今江蘇省南京市）。太祖同時命吳越王錢俶合擊南唐，策應宋軍。11月21日，曹彬攻陷池州（今安徽省池州市），並陸續攻下銅陵、當塗、蕪湖，進逼采石磯（今安徽省馬鞍山市西）。12月9日，宋軍於采石磯擊敗南唐二萬大軍，俘獲一千餘人、戰馬三百餘匹。太祖隨即下令將先前已製成的浮橋自石牌（今安徽省安慶市懷寧縣石牌鎮）移至采石磯裝纜，三日而成，宋軍因此渡過長江。隔年（975年）3月2日，曹彬率軍圍攻金陵。南唐皇帝李煜下令戒嚴，並數次派遣使者徐鉉、周惟簡前往宋都汴梁請求暫緩進攻，太祖不許，徐鉉便陳述南唐國主無罪，與太祖反覆辯論，太祖大怒說：「不用再說了，我也知道南唐無罪，但天下本歸一家，臥榻之側，怎能容許其他人鼾睡呢！」976年元旦，宋軍攻陷金陵，李煜奉表請降，南唐滅亡。南唐昭武軍節度留后盧絳退保宣州、殺歙州刺史龔慎儀，據歙州繼續抵抗，被宋太祖勸降。南唐將領胡則據江州繼續抗宋直至四月城破。
太祖逝世後，太宗逼迫吳越王錢俶、清源軍節度使（閩南）陳洪進於978年納土歸降，並於隔年（979年）發兵滅亡北漢，宋朝至此統一除燕雲十六州及河西走廊等地外的漢地。
由元朝宰相脫脫所監修的《宋史?太祖本紀》對宋太祖趙匡胤有極高評價：
「讚曰：昔者堯、舜以禪代，湯、武以征伐，皆南面而有天下。四聖人者往，世道升降，否泰推移。當斯民塗炭之秋，皇天眷求民主，亦惟責其濟斯世而已。使其必得四聖人之才，而後以其行事畀之，則生民平治之期，殆無日也。五季亂極，宋太祖起介胄之中，踐九五之位，原其得國，視晉、漢、周亦豈甚相絕哉？及其發號施令，名藩大將，俯首聽命，四方列國，次第削平，此非人力所易致也。建隆以來，釋藩鎮兵權，繩贓吏重法，以塞濁亂之源。州郡司牧，下至令錄、幕職，躬自引對；務農興學，慎罰薄斂，與世休息，迄於丕平；治定功成，制禮作樂。在位十有七年之間，而三百餘載之基，傳之子孫，世有典則。遂使三代而降，考論聲明文物之治，道德仁義之風，宋於漢、唐，蓋無讓焉。嗚呼，創業垂統之君，規模若是，亦可謂遠也已矣！」
——《宋史·本紀第三·太祖本紀三》
明太祖朱元璋於1374年9月親至南京歷代帝王廟祭祀自三皇至元世祖等十七位歷代帝王，並對其各有祝文，其中對宋太祖的祝文云：
「惟宋太祖皇帝順天應人，統一海宇，祚延三百，天下文明。有君天下之德而安萬世之功者也。」
——《明太祖高皇帝實錄·卷九十二》
北宋開寶九年十月二十日（癸丑，976年11月14日），趙匡胤於皇宮萬歲殿逝世，享年五十歲，在位十六年，予諡「英武聖文神德皇帝」，廟號「太祖」，三弟趙光義繼位，即宋太宗。
977年5月15日，靈柩奉葬永昌陵。1008年9月3日，宋真宗趙恆加諡為「啟運立極英武睿文神德聖功至明大孝皇帝」。
依據北宋中期由文瑩和尚所著《續湘山野錄》的記載，趙匡胤發跡前曾與一名道士來往，常相約飲酒至醉。一次醉酒後，道士以吟唱預言趙匡胤將當皇帝，醒後卻推說酒醉胡言。趙匡胤稱帝後兩人再也沒相見。十六年後的開寶九年（976年）上巳節，趙匡胤至西沼行祓禊禮，道士坐於岸邊樹蔭下，對趙匡胤說：「別來無恙。」趙匡胤大喜，即請至後宮飲酒歡續。趙匡胤說：「我想請你預測一事以久，無他事，我還有幾年壽命？」道士說：「只要今年十月二十日夜晚天氣晴朗，就可延續十二年；否則，即當從速安排後事。」當日夜，趙匡胤登太清閣觀象，天氣先晴朗而後轉惡，驟下大雪。趙匡胤急忙下閣傳令開皇宮端門，召晉王趙光義入宮，兄弟二人於內寢對坐飲酒，並屏去所有宦官、宮女。內侍們遙見寢室燭影下，趙光義時而起座離席，露出不可勝之情狀。兩人喝完已是午夜時分，室外積雪已達數寸，趙匡胤拿柱斧戳雪，一邊回頭對趙光義說：「好做，好做！」接著就寬衣就寢，鼾聲如雷。當晚，趙光義留宿宮中。天將五更，寢室周圍寂靜無聲，趙匡胤駕崩，享年四十九歲。趙光義受遺詔於柩前即位，是為宋太宗。
北宋史家司馬光所著《涑水記聞》則記載趙匡胤逝世後，宋皇后急派宦官王繼恩傳召趙匡胤第四子、秦王趙德芳進宮，王繼恩卻逕至趙光義府邸通報趙匡胤死訊，並催其盡速進宮即位。趙光義猶豫不定，王繼恩則說：「事情拖久就被他人搶先了。」於是趙光義趁夜踏雪入宮，進入寢殿。宋皇后聽說王繼恩已歸，便問：「德芳來了嗎？」王繼恩卻說：「晉王來了。」宋皇后見到趙光義，先是驚愕，隨即說：「我們母子的性命，都托付給官家了。」趙光義則涕泣說：「共保富貴，不需擔憂。」
南宋史家李燾所著《續資治通鑑長編》採信上述二說，只將趙匡胤語「好做，好做」改為「好為之」，道士則有姓名曰「張守真」，且言趙光義當晚並無於宮中留宿。李燾於書中引北宋史家蔡惇直的筆記，也有與《續湘山野錄》相似的記載。
依據上述疑點，加上史書中其他記載（如趙匡胤之死已有人先行預料），便有趙匡胤是被趙光義謀殺之說。
〈對宋太宗承位之剖析〉 ，盧荷生撰，1970年；
〈宋太宗與宋初兩次篡位〉 ，劉子健撰，1988年；
竺沙雅章著、林傑斌譯， 《趙匡胤傳》 ，國際文化事業有限公司，1989年6月；
蔡東藩著， 《人文帝國－宋史演義?上》 ，商兆文化股份有限公司，2006年5月。ISBN 957-0381-44-2；
吳蔚著， 《宋史疑雲》 ，知本家文化事業有限公司出版，2008年1月。ISBN 9789867315656；
羅杰著， 《歷史罪︰不忍細讀的史案真相》 ，遼寧教育出版社，2009年4月。ISBN 9787538282344；
游彪著， 《正說宋朝十八帝》 ，聯經出版事業股份有限公司，2009年6月。ISBN 978-957-08-2944-0；
百家論壇編輯部著， 《歷史不忍細讀?貳》 ，大都會文化事業股份有限公司，2010年12月。ISBN 978-986-6234-08-8；
王立群著， 《王立群讀〈宋史〉之宋太祖?下部》 ，城邦文化事業股份有限公司，2013年9月。ISBN 986-173-973-1
趙光義表示：961年母親杜太后病危，召趙普入宮接受遺命。杜太后問趙匡胤：「你知道你為何能取得天下嗎？」趙匡胤泣不能答。杜太后說：「我是老死，哭也沒用，我正要跟你說大事，怎麼只是一直哭呢？」於是再問一遍。趙匡胤說：「都是祖上和太后積德所致。」杜太后說：「不對。是因為柴家讓孩童當皇帝，人心不服所致。如果後周有年長的君主，你能得到江山嗎？你和趙光義都是我親生的，你死後應將皇位傳給弟弟。天下之大、事務繁重，能立一個年長的君主來治理，這是社稷之福啊。」趙匡胤叩頭涕泣說：「一定遵照母后的教誨。」杜太后便對趙普說：「你將我剛才講的話記下來，不可違背。」趙普即於太后床前寫成誓書，並於末尾寫上「臣普記」三字。趙匡胤將誓書藏於金匱之中，命謹慎的宮人保管。
上述記載如屬實，則趙光義繼任皇位即有合法性及正當性。然而有學者指出諸多疑點：如此誓為真，則何以不在趙光義即位之初公布，而是等到981年10月才由趙普以「密奏」的方式啟奏趙光義，乃開金匱查驗屬實，前後竟隱瞞「太后遺詔」五年之久；記載內容所言皇位須「兄終弟及」是因杜太后擔心趙匡胤諸子皆幼，不足以坐穩江山，但趙匡胤死時，其次子趙德昭二十六歲，四子趙德芳十八歲，皆非幼弱，遺詔前提不復存在；記載來源《太祖實錄》經趙光義多次修改，已非原貌，而修改前的舊版則未有此記載，顯有杜撰之嫌；據《涑水記聞》、《續資治通鑑長編》、《宋史》等書記載，杜太后本意為趙匡胤死後，皇位傳給三弟趙光義，再傳給四弟趙廷美，最終傳回給趙匡胤次子趙德昭。然而修改後的新版《太祖實錄》只有傳位給趙光義的記載，且相關當事人竟於短時間內逐一逝世（979年，趙德昭自殺；981年，趙德芳猝死；984年，趙廷美遭貶，憂悸而死）。史學界即因前述疑點而有「金匱之盟」是趙普為取得趙光義信任、重得相位而杜撰「太后遺詔」的說法。
〈宋太祖太宗皇位授受問題辨析〉 ，鄧廣銘撰，1944年；
〈宋初二帝傳位問題之剖析〉 ，汪伯琴撰，1966年；
薩孟武著， 《西遊記與中國古代政治》 第一章〈菩薩與妖精〉，頁2－3，三民書局股份有限公司，2003年3月。ISBN 9789571412979；
王立群著， 《王立群讀〈宋史〉之宋太祖?下部》 ，城邦文化事業股份有限公司，2013年9月。ISBN 986-173-973-1加上趙光義不逾年而改元（開寶九年十二月甲寅，即977年1月14日改「開寶九年」為「太平興國元年」），也有學者據此認為趙光義因弒兄奪位而心虛，不等過年即倉促改元，欲使其繼位成為既定事實。
*史載趙匡胤生時，紅光滿室，有香氣整夜不散，嬰兒體呈金色，長達三日。年輕時學騎射，嘗試馴服烈馬不加鞍繩，馬衝上城門斜坡道，致趙匡胤額頭撞擊城門門楣，目擊者皆認為其頭骨必定粉碎，趙匡胤卻從容站起，徒步追上烈馬騰騎而上，毫髮無傷；趙匡胤兒時曾與玩伴韓令坤在土屋裡玩耍，有群麻雀在室外聒噪互鬥，趙匡胤遂與韓令坤出土屋欲捕麻雀，剛出房而土屋隨即崩塌，二人幸免於難。
*趙匡胤與胞弟趙光義幼時隨母親杜氏躲避戰亂，杜氏便將兄弟二人放至籮筐擔挑而走，為道士陳摶撞見，便嘆道：「別說當今世上沒有天子，都將天子用擔挑著走。」；多年後趙匡胤稱帝，陳摶聞之大笑，說：「天下從此安定了。」
*959年，後周世宗柴榮親征契丹，於征途中批閱文書，發現其中有一囊袋，內有三尺長的木牌，上有字：「點檢作天子」。柴榮見後不悅，漸感身體不適，便命車駕返京。抵京後下詔撤殿前都點檢張永德之職，改任趙匡胤。隔年初，趙匡胤登基為帝，遂應此讖。
* 宋初，宰相范質等人仍循前代慣例，上朝時設有座椅，坐著奏事。一日早朝，范質猶坐著，趙匡胤便說：「我眼睛昏花，看不清楚，你把文書拿給我看。」范質於是起身持文書進呈，趙匡胤卻已密囑侍者趁此將其座撤去，待范質欲返座而座椅已撤，只得站立。自此宰相與群臣般站著上朝，成為慣例。
* 趙匡胤稱帝後第三年，秘密遣人鐫刻一通石碑，藏於太廟的夾室內，稱為「誓碑」，用黃金絲所鑲嵌成的布幔遮蓋，門禁森嚴。趙匡胤下令此後四時祭祀及新皇帝即位時，待拜完太廟，便須恭讀誓詞，由一個不識字的小太監持鑰匙開夾室，然後焚香、點亮燭火並將幔揭開，其餘隨臣須於遠方庭中佇候。當朝皇帝於碑前跪拜並默誦誓詞，再拜而出，群臣及近侍們皆不知誓詞為何。北宋歷代皇帝皆承襲故例，按時恭讀，不敢洩漏。直到靖康之變爆發，皇宮大亂，太廟夾室門戶洞開，人們才發現內裡有一高約七、八尺，寬四尺餘的石碑，上面有三行誓詞：第一、柴氏子孫有罪，不得加刑，縱犯謀逆，止於獄中賜盡，不得市曹刑戮，亦不得連坐支屬；第二、不得殺士大夫及上書言事人；第三、子孫有渝此誓者，天必殛之。上述三誓史稱「太祖誓約」。南宋皇帝則是由曹勛自金國南歸時，向宋高宗轉達宋徽宗之語方才得知誓詞。
長趙匡濟曹王 三  趙光義  太宗 四趙廷美魏悼王五趙匡贊岐王
趙匡濟早逝、趙匡贊早夭
秦國大長公主
賀氏孝惠皇后王氏孝明皇后宋氏孝章皇后
孝惠皇后為追冊
長趙德秀滕王次趙德昭燕懿王三趙德林舒王四趙德芳秦康惠王
前三子為孝惠皇后所生；德秀、德林二人早夭，王號由徽宗追賜；德芳母孝明皇后
魏國大長公主魯國大長公主陳國大長公主申國公主成國公主永國公主
前二女為孝惠皇后所生，余者生母不詳；申國、成國、永國三公主早夭，其中兩人可能為孝明皇后所生
北宋除開國皇帝宋太祖趙匡胤外，歷任皇帝皆為其三弟宋太宗趙光義與其後代；而南宋除首任皇帝宋高宗趙構為趙光義後代外，歷任皇帝則均為趙匡胤的後代，其中屬趙匡胤四子趙德芳後代的有宋孝宗趙昚、宋光宗趙惇、宋寧宗趙擴；屬趙匡胤次子趙德昭後代的有宋理宗趙昀、宋度宗趙禥、宋恭帝趙?、宋端宗趙昰、宋少帝趙昺。
*至明代，趙匡胤千里送京娘的傳說已經成型。傳說中，趙匡胤被塑造成為一個義士的形象。明清時，多個劇種有以這個傳說為素材演出的劇目。
*趙匡胤本身為武術高手，太祖長拳正由趙匡胤所創，流入少林寺時，衍化為「長拳門」，又稱「太祖門」，戚繼光在紀效新書的拳經捷要篇有紀錄「宋太祖有三十二式長拳」；作家金庸在小說天龍八部中就有形容「宋太祖趙匡胤以一對拳頭，一條桿棒，打下了大宋錦繡江山。自來帝皇，從無如宋太祖之神勇者；一套太祖長拳和太祖棒，當時是武林中最為流行的武功，就算不會使的，看也看得熟了。」
《真命天子-趙匡胤》
《傾世皇妃》
梁辛全、林峰駘
*清、吳璿《飛龍全傳》：三結義：柴榮、趙匡胤、鄭恩(張瓊)。
*《飛龍傳》：苗訓預言帝命，愛上韓素梅，柴趙鄭三結義。
*《困曹府》：匿曹彬家，割瘤討封。
*《灑金橋》：入設棚受苗訓卜算未來十事。
*《送京娘》：千里護行不受饋。
*《高平關》：郭威登基，逼匡胤取高首，許封二子嗣爵，加聯姻始自刎。
*《花亭射妖》：柴榮投郭封爵，花園飲酒現魚妖，匡胤射之。
*《四紅圖》：趙刺劉化王未遂，曹仁代而反助刺，戡定燕京。
*《千金全德》：高女桂英嫁武魁石守信。
*《打龍棚》：柴榮登基，鄭恩討赦引薦高懷德。
*《三打陶三春》：柴令趙為媒，撮合鄭陶，高懷得三打陶遂成姻緣。
*《打竇瑤》：南唐馬瑤進妃與趙不合，鄭逼柴救趙。
*《南界關》：守將劉仁贍不屈死節，匡胤敬其忠命妻徐金花續守壽春城。
*《小堯天》：陳橋驛黃袍加身，除韓通，杯酒釋兵權。
*《斬黃袍》：趙封素梅為妃，受舅韓龍灌酒讒言誤斬鄭恩，遂褪龍袍許鄭妻三春斬之以洩恨。
*《輸華山》：陳摶與匡胤賭華山，陳勝得華山封地。
*《雪夜訪趙普》：登基謀治國。
*  斧聲燭影中國紀錄片「案藏玄機」。
內湖線，簡稱內捷，屬於臺北捷運文湖線路段之一，與1996年通車之木柵線直通營運，以連結臺北市東部的內湖、南港及木柵等地。此路段為中運量系統，也是臺灣第二條連絡機場的捷運系統。2001年8月行政院核定路線（新十大建設），全線大部分為高架路線，穿越松山機場及大直路段則為地下路線。路線自中山國中站起，沿復興北路轉入民族東路北側，進入地下後往北穿越臺北松山機場及基隆河至大直，於自強隧道南端圓環旁之的北安路東側出土，進入內湖後改採用高架路線，沿內湖路、文德路、成功路與康寧路行進，跨越基隆河與國道1號（中山高速公路）至南港展覽館站，全長14.8公里。
*松山機場站：以臺北松山機場建築、本站公共藝術「行李箱」和飛機為主題。
*大直站：以國民革命忠烈祠和大直橋為主題。
*劍南路站：以美麗華百樂園的摩天輪、劍潭古寺和劍南蝴蝶步道為主題。
*西湖站：以本站站體和內湖清代採石場為主題。
*港墘站：以本站站體和內湖科技園區為主題。
*文德站：以郭子儀紀念堂、碧湖公園和國立臺灣戲曲學院為主題。
*內湖站：以碧山巖開漳聖王廟和白石湖吊橋為主題。
*大湖公園站：以站內公共藝術「風箏－悠游天際」和大湖公園的錦帶橋為主題。
*葫洲站：以本站站體和白鷺鷥山步道為主題。
*東湖站：以東湖哈拉影城為主題，搭配五分吊橋而成，展現現代與歷史建物的變化。
*南港軟體園區站：以南港軟體園區的公司建築為主題，搭配上班族作為代表此站的特色。
*南港展覽館站：以南港展覽館和本站出口造型為主題。
內湖線最初規劃時即定位為木柵線的延伸，同樣採用膠輪路軌之中運量系統，大部分為高架路線。但由於木柵線通車前不斷發生試車事故，內湖民眾對於中運量系統的排斥感高漲，因此堅持要求變更設計，改採用高運量系統，以及興建地下化路線，並透過市議員提出這方面的訴求，於1997年7月31日臺北市議會第七屆第廿七次臨時大議第四次會議議決：內湖線應採高運量辦理。臺北市政府捷運工程局則基於路線佈設考量，以及興建成本可能激增、內湖地區道路狹窄施工困難等理由，認為變更設計一事窒礙難行，雙方並無共識。之後臺北市議會通過決議，凍結相關預算，要求重新評估替代方案。
經過多次重新評估，以及與地方長期溝通後，儘管捷運局曾提出一些替代方案，但受限於經費因素，原定計畫仍較為可行。擔心內湖線通車之日遙遙無期，而要求儘速妥協以利動工的聲音也開始浮現。加上木柵線通車後不再發生事故，使得內湖民眾對於中運量系統的接受度有所提升。不過，仍有超過半數的民眾堅持以地下化方式興建。捷運局則表示經費不足，只能興建高架路線。
內湖線一段高架段
2000年，行政院表明：內湖線如果再不動工，中央政府將收回內湖線的補助預算。（前項說法中央收回預算說法，於時任代理捷運工程局長范良銹，2001年1月8日第八屆第十七次臨時大會第二次會議，明確答詢陳秀惠議員時表示：「我們也從來沒有放話說中央要把錢收回，我剛才與報告過我們也沒有接到中央書面通知」）
臺北市捷運工程局面對各方的質疑與建議，自1996年起，除了1993年核定的行政院核定案以外（即中運量高架系統），又陸續提出高運量高架化、高運量地下化、中運量地下化等系統的方案A、B、C、D、E的五個修正案，其中方案A、B的高運量+中運量系統，於1999年決議刪除。前臺北市長馬英九於2000年6月21日赴市議會，在第八屆第十三次臨時大會第三次會議提出「捷運系統內湖線替選方案」專案報告。其後依議員的要求下，進行了第二次的民調，但民調結果卻遭到質疑。市府邀請學者與專家開會提供意見，認為民調結果僅作為參考，仍應回歸專業上的考量。2001年1月9日第八屆第十七次臨時大會第三次會議，二讀通過贊成市府所建議的行政院核定案（即中運量高架化系統），另外也提出增設松山機場站的修正案。行政院於2001年8月1日審議通過此一提案，延宕了七年的爭議終於畫下句點。
內湖線工程由工信工程股份有限公司，在內湖人一片反對中運量、議員質疑龐巴迪無法承接馬特拉膠輪系統之際，以遠低於其他對手的328億6999萬9996元得標。但至2009年中，五次追加減預算後預算已高達593億7867萬4251元，預估到完成時會高達667億元，為得標金額之兩倍。
2010年5月12日監察院提出糾正指出，以小綁大之土建綁機電的發包策略不當，且決標前未審查廠商資格，導致無法選擇機電系統廠商，機電廠商亦無法參與公平競爭；決標後也未審慎辦理履約及勘查作業，以致營運後事故頻傳；且文湖線從規劃到完工歷時20餘年，預算也從1989年議會通過的新臺幣247.66億元預算，一直追加到637億元，而機電工程隨物價調整部分還沒納入，未來經費只會更多不會更少。如果比較每公里造價，1989年原核定採高架設計，每公里造價27.22億元，後因中高運量爭議、路線變更、增設松山機場站及物價調整等，2009年通車營運核算每公里造價增為43.05億元，增幅達58.18%，顯見捷運局辦理內湖線規劃設計、施工及履約管理過程並不周延。
內湖線工程原本預定於2008年6月完工，然而由於內湖地區地下管線複雜，先前土質評估失誤。康寧路壓力箱涵不得在防汛期施工，加上包商與下游廠商間出現糾紛等因素，造成施工進度落後，預定通車時程約延後一年。
內湖線從計畫到通車耗時共22年，共歷經許水德、吳伯雄、黃大洲、陳水扁、馬英九、郝龍斌共六位市長，動工到通車共7年。原預定1996年通車營運，也因種種因素而延宕至2011年8月28日才能全面驗收通車，為臺北捷運各路線中延宕最久的路線。與木柵線串連後成為全世界最長的中運量膠輪路軌系統（共25.7公里）。
*1987年2月23日：內湖線開始規劃。
*1988年12月15日：木柵線開工，同時交通部規劃內湖線於1996年完工通車。
*1990年4月7日：內湖線11座車站位置及路線確定。
*1993年9月28日：由於木柵線試車時發生火燒車事件，交通部決定停止所有內湖線相關作業。
*1993年10月9日：捷運局代理局長廖慶隆宣佈內湖線放棄中運量系統，改採高運量系統；並請捷運局進行民意調查。
*1994年8月23日：捷運局宣佈內湖線仍將採用中運量系統；內湖居民發動連署，反對中運量系統（中運量的系統在國際間尚未整合，各系統由不同設計製造公司持有專利，所以有系統相容的問題）。
*2001年9月26日：內湖線12座車站命名確定。
*2001年8月：行政院長游錫堃核定捷運內湖線（新十大建設）。
*2002年5月23日：內湖線開工，同時交通部規劃內湖線於2008年6月完工通車。
*2006年12月26日：臺北市長郝龍斌於就任首日視察工地時，宣佈內湖線延後至2009年6月通車。
*2008年1月26日：內湖線完成全線軌道鋪軌。
*2008年12月6日～2009年6月20日：文湖線進行多次直通測試。
*2009年5月7日、5月9日：臺北市政府辦理初勘。
*2009年6月6日、6月7日：交通部進行履勘作業。
*2009年6月15日：取得交通部營運許可證。
*2009年6月28日～7月1日：進行劍南路－南港展覽館免費試乘活動。（松山機場站、大直站不開放）
*2009年7月4日：木柵線轉換龐巴迪系統，切斷使用13年的西門子VAL256系統，內湖線正式連接木柵線通車營運，稱為木柵內湖線。7月4日至6日三天，持悠遊卡搭乘臺北捷運享全面5折優惠。
下表為單程票價，悠遊卡及一卡通優待／學生／普通為單程票價之8折，悠遊卡及一卡通敬老／愛心／愛心陪伴則為單程票價之4折，單位為新臺幣（元）。部分票價會因轉乘其他線而降低。
*** 臺灣機場聯絡軌道交通列表
**** 高雄捷運高雄捷運紅線
**** 桃園捷運桃園國際機場捷運
蕭笙，香港電視劇監製，原名蕭凌，曾在三家免費電視臺製作過多套膾炙人口的電視劇，尤擅長長編武俠劇。
蕭笙曾在戲院做字幕員、撕票員，1950年代投身電影圈，做過場記、副導演、編劇等。1970年代電視行業興起，蕭笙加入麗的電視至1976轉投佳藝電視，1978年佳視倒閉後重返麗的電視代表作包括《浣花洗劍錄》、《天蠶變》、《天龍訣》、《大內群英》等。
1981年轉投無綫電視代表作包括改編自金庸武俠小說的《神鵰俠侶》及《天龍八部》等，而《神雕俠侶》更曾有六十幾點的收視。
1992年重返前身為麗的電視的亞洲電視至1998年被栽員，2000年代初仍有為亞洲電視監製電視劇。
2004年11月27日，因肝癌惡化病逝，下葬於將軍澳華人永遠墳場。
*1976年 ：《射鵰英雄傳》、《神鵰俠侶》
*1977年 ：《雪山飛狐》、《紅樓夢》
*1978年 ：《流星蝴蝶劍》
*未播出 ：《風雷第一刀》 (拍攝期間佳藝電視倒閉)
*1978年 ：《浣花洗劍錄》
*1980年 ：《湖海爭霸錄》
*1980年 ：《大內群英續集》
*1981年 ：《少年黃飛鴻》
*1981年 ：《武俠帝女花》
*1982年 ：《天龍八部之六脈神劍》、 《天龍八部之虛竹傳奇》
*1983年 ：《十三妹》、 《神鵰俠侶》
*1984年 ：《秋瑾》、《楚留香之蝙蝠傳奇》、《廣東鐵橋三》
*1986年 ：《陸小鳳之鳳舞九天》、《神劍魔刀》
*1987年 ：《成吉思汗》、《大明群英》
*1988年 ：《洪熙官》、《太平天國》
*1989年 ：《人海虎鯊》、《天涯歌女》
*1991年 ：《我係黃飛鴻》、《蜀山奇俠之仙侶奇緣》、《月兒彎彎照九州》
*1993年 ：《天蠶變之再與天比高》
*1996年 ：《女人啊！女人》
*1998年 ：《流氓·律師》
*1998年 ：《我來自廣州》
*1989年 ：《他來自江湖》 飾 蕭　笙（一位同名的著名導演；第16-18集）
*1976年 ：《大家姐》(麗的電視劇集《大家姐》主題曲)
*1979年 ：《無雙譜》(麗的電視劇集《沈勝衣》插曲)
*1963年 ：《倚天屠龍記》
*1965年 ：《玉面閻羅下集大結局》
*1965年 ：《玉面閻羅上集》
*1965年 ：《武林聖火令 (下集大結局) 》
*1965年 ：《武林聖火令 (上集)》
*1965年 ：《哪吒三戲紅孩兒》
*1966年 ：《萬劫門下集大結局》
*1966年 ：《萬劫門上集》
*1966年 ：《聖火雄風下集》
*1966年 ：《聖火雄風上集》
*1967年 ：《七彩封神榜》
*1967年 ：《玉女的秘密》
*1967年 ：《玉郎三戲女將軍》
*1967年 ：《聖火雄風大破火蓮陣》
*1968年 ：《武林大決鬥》
*1969年 ：《大破誅仙陣》
*1996年 ：《神偷燕子李三》
*1963年：《劍俠金縷衣(下集)》
*1963年：《劍俠金縷衣(上集)》
*1963年：《龍虎下江南(大結局)》
*1963年：《龍虎下江南(上集)》
*1964年 ：《孫悟空七打九尾狐》
*1965年：《武林聖火令(下集大結局)》
*1965年：《武林聖火令(上集)》
*1965年：《玉面閻羅(下集大結局)》
*1965年：《哪吒三戲紅孩兒》
*1966年：《萬劫門(上集)》
*1966年：《萬劫門(下集大結局)》
*1966年：《聖火雄風上集》
*1966年：《聖火雄風下集》
*1967年：《聖火雄風大破火蓮陣》
*1976年：《花心三少騷銀姐》
*1996年：《神偷燕子李三》
* 《香港資深電視人蕭笙》(附圖)
* 五虎將痛失恩師，劉德華：「沒有蕭笙就不會有我」
* 那是最好的時代——蕭笙、黃霑給我們的集體回憶
Objective-C是一種通用、高級、面向對象的編程語言。它擴展了標準的ANSI C編程語言，將Smalltalk式的消息傳遞機制加入到ANSI C中。目前主要支持的編譯器有GCC和Clang（採用LLVM作為後端）。
Objective-C的商標權屬於蘋果公司，蘋果公司也是這個程式語言的主要開發者。蘋果在開發NeXTSTEP操作系統時使用了Objective-C，之后被OS X和iOS繼承下來。現在Objective-C與Swift是OS X和iOS操作系統、及與其相關的API、Cocoa和Cocoa Touch的主要編程語言。
Objective-C 主要由  公司的布萊德·考克斯（Brad Cox）和 （Tom Love） 在 1980 年代發明。
1981年 Brad Cox 和 Tom Love 還在 ITT 公司技術中心任職時，接觸到了 SmallTalk語言。Cox 當時對軟件設計和開發問題非常感興趣，他很快地意識到 SmallTalk語言 在系統工程構建中具有無法估量的價值，但同時他和 Tom Love 也明白，目前 ITT 公司的電子通信工程相關技術中，C 語言被放在很重要的位置。
於是 Cox 撰寫了一個 C 語言的預處理器，打算使 C 語言具備些許 Smalltalk 的本領。Cox 很快地實現了一個可用的 C 語言擴展，此即為 Objective-C語言的前身。到了 1983 年，Cox 與 Love 合夥成立了 Productivity Products International（PPI）公司，將 Objective-C 及其相關函式庫商品化販售，並在之後將公司改名為StepStone。1986年，Cox 出版了一本關於 Objective-C 的重要著作《Object-Oriented Programming, An Evolutionary Approach》，書內詳述了 Objective-C 的種種設計理念。
1988年，斯蒂夫·喬布斯（Steve Jobs）離開蘋果公司後成立了 NeXT Computer 公司，NeXT 公司買下 Objective-C 語言的授權，并擴展了著名的開源編譯器GCC 使之支持 Objective-C 的編譯，基於 Objective-C 開發了  與  等函式庫，作為 NeXTSTEP 的的用戶介面與開發環境的基礎。雖然 NeXT 工作站後來在市場上失敗了，但 NeXT 上的軟體工具卻在業界中被廣泛讚揚。這促使 NeXT 公司放棄硬體業務，轉型為銷售NeXTStep（以及OpenStep）平臺為主的軟體公司。
1992年，自由軟件基金會的 GNU 開發環境增加了對 Objective-C 的支持。1994年，NeXT Computer公司和Sun Microsystem聯合發布了一個針對 NEXTSTEP 系統的標準典范，名為 OPENSTEP。OPENSTEP 在自由軟件基金會的實現名稱為 GNUstep。1996年12月20日，蘋果公司宣布收購 NeXT Software 公司，NEXTSTEP/OPENSTEP環境成為蘋果操作系統下一個主要發行版本OS X的基礎。這個開發環境的版本被蘋果公司稱為Cocoa。
2005年，蘋果電腦雇用了克里斯·拉特納及LLVM開發團隊，clang及LLVM成為蘋果公司在GCC之外的新編譯器選擇，在 Xcode 4.0之後均採用 LLVM 作為默認的編譯器。最新的 Modern Objective-C 特性也都率先在 Clang 上實現。
Objective-C是C語言的嚴格超集－－任何C語言程式不經修改就可以直接通過Objective-C編譯器，在Objective-C中使用C語言代碼也是完全合法的。Objective-C被描述為''蓋在C語言上的薄薄一層''，因為Objective-C的原意就是在C語言主體上加入面向對象的特性。Objective-C的面向對象語法源於Smalltalk訊息傳遞風格。所有其他非面向對象的語法，包括變數型別，預處理器（preprocessing），流程控制，函數聲明與調用皆與C語言完全一致。但有些C語言語法合法代碼在objective-c中表達的意思不一定相同，比如某些布爾表達式，在C語言中返回值為true，但在Objective-C若與true直接相比較，函數將會出錯，因為在Objective-C中true的值只表示為1.
這里示範了一個基礎的Hello World程序。基於Xcode 4.3.1:
@autoreleasepool {
NSLog(@"Hello World!");
Objective-C最大的特色是承自Smalltalk的訊息傳遞模型（message passing），此機制與今日C++式之主流風格差異甚大。Objective-C裡，與其說物件互相呼叫方法，不如說物件之間互相傳遞訊息更為精確。此二種風格的主要差異在於''呼叫方法/訊息傳遞''這個動作。C++裡類別與方法的關係嚴格清楚，一個方法必定屬於一個類別，而且在編譯時（compile time）就已經緊密綁定，不可能呼叫一個不存在類別裡的方法。但在Objective-C，類別與訊息的關係比較鬆散，呼叫方法視為對物件''發送訊息''，所有方法都被視為''對訊息的回應''。所有訊息處理直到執行時（runtime）才會動態決定，並交由類別自行決定如何處理收到的訊息。也就是說，一個類別不保證一定會回應收到的訊息，如果類別收到了一個無法處理的訊息，程式只會拋出異常，不會出錯或崩潰。
C++裡，送一個訊息給物件（或者說呼叫一個方法）的語法如下：
obj.method(argument);
Objective-C則寫成：
obj method: argument;
此二者並不僅僅是語法上的差異，還有基本行為上的不同。
這裡以一個汽車類（car class）的簡單例子來解釋Objective-C的訊息傳遞特性：
car fly;
典型的C++意義解讀是「呼叫car類別的fly方法」。若car類別裡頭沒有定義fly方法，那編譯肯定不會通過。但是Objective-C裡，我們應當解讀為「發送出一個fly的訊息給car物件」，fly是''訊息''，而car是訊息的''接收者''。car收到訊息後會決定如何回應這個訊息，若car類別內定義有fly方法就執行方法內之代碼，若car內不存在fly方法，則程式依舊可以通過編譯，執行期則拋出異常。
此二種風格各有優劣。C++強制要求所有的方法都必須有對應的動作，且編譯期綁定使得函數呼叫非常快速。缺點是僅能藉由virtual關鍵字提供有限的動態綁定能力。Objective-C天生即具備鴨子類型之動態綁定能力，因為執行期才處理訊息，允許傳送未知訊息給物件。可以送訊息給整個物件集合而不需要一一檢查每個物件的型態，也具備消息轉送機制。同時空物件nil接受訊息後默認為不做事，所以送訊息給nil也不用擔心程序崩潰。
Objective-C中強制要求將類的接口（interface）與實現（implementation）分為兩個部分。
類的定義文件遵循C語言之慣例以.h為后綴，實現文件以.m為后綴。
定義部分，清楚定義了類的名稱、成員變數和方法。
以關鍵字@interface作為開始，@end作為結束。
@interface MyObject : NSObject {
int memberVar1; // 實體變量
id  memberVar2;
+(return_type) class_method; // 類方法
-(return_type) instance_method1; // 實例方法
-(return_type) instance_method2: (int) p1;
-(return_type) instance_method3: (int) p1 andPar: (int) p2;
方法前面的 +/- 號代表函數的類型：加號（+）代表類方法（class method），不需要實例就可以調用，與C++ 的靜態函數（static member function）相似。減號（-）即是一般的實例方法（instance method）。
這裡提供了一份意義相近的C++語法對照，如下：
class MyObject : public NSObject {
protected:
int memberVar1;  // 實體變量
void * memberVar2;
&nbsp;  static return_type class_method; // 類方法
return_type instance_method1;    // 實例方法
return_type instance_method2( int p1 );
return_type instance_method3( int p1, int p2 );
Objective-C定義一個新的方法時，名稱內的冒號（:）代表參數傳遞，不同于C語言以數學函數的括號來傳遞參數。Objective-C方法使得參數可以夾雜于名稱中間，不必全部附綴于方法名稱的尾端，可以提高程式可讀性。設定顏色RGB值的方法為例：
- (void) setColorToRed: (float)red Green: (float)green Blue:(float)blue; /* 宣告方法*/
myColor setColorToRed: 1.0 Green: 0.8 Blue: 0.2; /* 呼叫方法*/
這個方法的簽名是setColorToRed:Green:Blue:。每個冒號后面都帶著一個float類別的參數，分別代表紅，綠，藍三色。
實現區段則包含了公開方法的實現，以及定義私有（private）變量及方法。
以關鍵字@implementation作為區段起頭，@end結尾。
@implementation MyObject {
int memberVar3; //私有實體變數
+(return_type) class_method {
.... //method implementation
-(return_type) instance_method1 {
-(return_type) instance_method2: (int) p1 {
-(return_type) instance_method3: (int) p1 andPar: (int) p2 {
值得一提的是不只Interface區段可定義實體變數，Implementation區段也可以定義實體變數，兩者的差別在於存取權限的不同，Interface區段內的實體變數默認權限為protected，宣告於implementation區段的實體變數則默認為private，故在Implementation區段定義私有成員更符合物件導向之封裝原則，因為如此類別之私有資訊就不需曝露於公開interface（.h文件）中。
Objective-C創建對象需通過alloc以及init兩個消息。alloc的作用是分配內存，init則是初始化對象。
init與alloc都是定義在NSObject里的方法，父對象收到這兩個信息并做出正確回應后，新對象才創建完畢。以下為范例：
MyObject * my = MyObject alloc init;
在Objective-C 2.0裡，若創建對象不需要參數，則可直接使用new
MyObject * my = MyObject new;
僅僅是語法上的精簡，效果完全相同。
若要自己定義初始化的過程，可以重寫init方法，來添加額外的工作。（用途類似C++ 的構造函數constructor）
- (id) init {
if ( self=super init ) {   // 必須調用父類的init
// do something here ...
return self;
協議是一組沒有實現的方法列表，任何的類均可採納協議並具體實現這組方法。
Objective-C在NeXT時期曾經試圖引入多重繼承的概念，但由于協議的出現而沒有實現之。
協議類似於Java與C#語言中的“接口”。在Objective-C中，有兩種定義協議的方式：由編譯器保證的“正式協議”，以及為特定目的設定的“非正式協議”。
非正式協議為一個可以選擇性實現的一系列方法列表。非正式協議雖名為協議，但實際上是掛于NSObject上的未實現分類（Unimplemented Category）的一種稱謂，Objetive-C語言機制上並沒有非正式協議這種東西，OSX 10.6版本之後由於引入@optional關鍵字，使得正式協議已具備同樣的能力，所以非正式協議已經被廢棄不再使用。
正式協議類似于Java中的"接口"，它是一系列方法的列表，任何類都可以聲明自身實現了某個協議。在Objective-C 2.0之前，一個類必須實現它聲明符合的協議中的所有方法，否則編譯器會報告錯誤，表明這個類沒有實現它聲明符合的協議中的全部方法。Objective-C 2.0版本允許標記協議中某些方法為可選的（Optional），這樣編譯器就不會強制實現這些可選的方法。
協議經常應用於Cocoa中的委托及事件觸發。例如文本框類通常會包括一個委托（delegate）對象，該對象可以實現一個協議，該協議中可能包含一個實現文字輸入的自動完成方法。若這個委托對象實現了這個方法，那么文本框類就會在適當的時候觸發自動完成事件，並調用這個方法用于自動完成功能。
Objective-C中協議的概念與Java中接口的概念並不完全相同，即一個類可以在不聲明它符合某個協議的情況下，實現這個協議所包含的方法，也即實質上符合這個協議，而這種差別對外部代碼而言是不可見的。正式協議的聲明不提供實現，它只是簡單地表明符合該協議的類實現了該協議的方法，保證呼叫端可以安全調用方法。
協議以關鍵字@protocol作為區段起始，@end結束，中間為方法列表。
@protocol Locking
- (void)lock;
- (void)unlock;
這是一個協議的例子，多線程編程中經常要確保一份共享資源同時只有一個線程可以使用，會在使用前給該資源掛上鎖
，以上即為一個表明有“鎖”的概念的協議，協議中有兩個方法，只有名稱但尚未實現。
下面的SomeClass宣稱他採納了Locking協議：
@interface SomeClass : SomeSuperClass
一旦SomeClass表明他採納了Locking協議，SomeClass就有義務實現Locking協議中的兩個方法。
@implementation SomeClass
- (void)lock {
// 實現lock方法...
- (void)unlock {
// 實現unlock方法...
由於SomeClass已經確實遵從了Locking協議，故調用端可以安全的發送lock或unlock訊息給SomeClass實體變數，不需擔心他沒有辦法回應訊息。
插件是另一個使用抽象定義的例子，可以在不關心插件的實現的情況下定義其希望的行為。
類似于Smalltalk，Objective-C具備動態類型：即消息可以發送給任何物件實體，無論該物件實體的公開介面中有沒有對應的方法。對比於C++這種靜態類型的語言，編譯器會擋下對（void*）指針調用方法的行為。但在Objective-C中，你可以對id發送任何訊息（id很像void*，但是被嚴格限制只能使用在物件上），編譯器僅會發出「該物件可能無法回應訊息」的警告，程式可以通過編譯，而實際發生的事則取決於執行期該物件的真正形態，若該物件的確可以回應消息，則依舊執行對應的方法。
一個物件收到訊息之後，他有三種處理訊息的可能手段，第一是回應該消息並執行方法，若無法回應，則可以轉發消息給其他物件，若以上兩者均無，就要處理無法回應而拋出的例外。只要進行三者之其一，該消息就算完成任務而被丟棄。若對“nil”（空對象指針）發送消息，該消息通常會被忽略，取決于編譯器選項可能會拋出例外。
雖然Objective-C具備動態類型的能力，但編譯期的靜態類型檢查依舊可以應用到變量上。以下三種聲明在運行時效力是完全相同的，但是三種聲明提供了一個比一個更明顯的類型信息，附加的類型信息讓編譯器在編譯時可以檢查變量類型，并對類型不符的變量提出警告。
下面三個方法，差異僅在於參數的形態：
- setMyValue:(id) foo;
id形態表示參數“foo”可以是任何類的實例。
- setMyValue:(id ) foo;
id表示“foo”可以是任何類的實例，但必須採納“aProtocol”協議。
- setMyValue:(NSNumber*) foo;
該聲明表示“foo”必須是“NSNumber”的實例。
動態類型是一種強大的特性。在缺少泛型的靜態類型語言（如Java 5以前的版本）中實現容器類時，程序員需要寫一種針對通用類型對象的容器類，然后在通用類型和實際類型中不停的強制類型轉換。無論如何，類型轉換會破壞靜態類型，例如寫入一個“整數”而將其讀取為“字符串”會產生運行時錯誤。這樣的問題被泛型解決，但容器類需要其內容對象的類型一致，而對于動態類型語言則完全沒有這方面的問題。
Objective-C允許對一個對象發送消息，不管它是否能夠響應之。除了響應或丟棄消息以外，對象也可以將消息轉發到可以響應該消息的對象。轉發可以用于簡化特定的設計模式，例如觀測器模式或代理模式。
Objective-C運行時在Object中定義了一對方法：
- (retval_t) forward:(SEL) sel :(arglist_t) args; // with GCC
- (id) forward:(SEL) sel :(marg_list) args; // with NeXT/Apple systems
- (retval_t) performv:(SEL) sel :(arglist_t) args;  // with GCC
- (id) performv:(SEL) sel :(marg_list) args; // with NeXT/Apple systems
希望實現轉發的對象只需用新的方法覆蓋以上方法來定義其轉發行為。無需重寫響應方法performv::，由于該方法只是單純的對響應對象發送消息并傳遞參數。其中，SEL類型是Objective-C中消息的類型。
這里包括了一個演示轉發的基本概念的程序示例。
; ''Forwarder.h''
@interface Forwarder : Object
id recipient; //該對象是我們希望轉發到的對象。
@property (assign, nonatomic) id recipient;
; ''Forwarder.m''
#import "Forwarder.h"
@implementation Forwarder
@synthesize recipient;
- (retval_t) forward: (SEL) sel : (arglist_t) args
*檢查轉發對象是否響應該消息。
*若轉發對象不響應該消息，則不會轉發，而產生一個錯誤。
if(recipient respondsTo:sel)
return recipient performv: sel : args;
return self error:"Recipient does not respond";
; ''Recipient.h''
// A simple Recipient object.
@interface Recipient : Object
- (id) hello;
; ''Recipient.m''
#import "Recipient.h"
@implementation Recipient
- (id) hello
printf("Recipient says hello!\n");
; ''main.m''
Forwarder *forwarder = Forwarder new;
Recipient *recipient = Recipient new;
forwarder.recipient = recipient; //Set the recipient.
*轉發者不響應hello消息！該消息將被轉發到轉發對象。
forwarder hello;
利用GCC編譯時，編譯器報告：
$ gcc -x objective-c -Wno-import Forwarder.m Recipient.m main.m -lobjc
main.m: In function `main':
main.m:12: warning: `Forwarder' does not respond to `hello'
如前文所提到的，編譯器報告Forwarder類不響應hello消息。在這種情況下，由于實現了轉發，可以忽略這個警告。
運行該程序產生如下輸出：
$ ./a.out
Recipient says hello!
在Objective-C的設計中，一個主要的考慮即為大型代碼框架的維護。結構化編程的經驗顯示，改進代碼的一種主要方法即為將其分解為更小的片段。Objective-C借用并擴展了Smalltalk實現中的“分類”概念，用以幫助達到分解代碼的目的。
一個分類可以將方法的實現分解進一系列分離的文件。程序員可以將一組相關的方法放進一個分類，使程序更具可讀性。舉例來講，可以在字符串類中增加一個名為“拼寫檢查”的分類，并將拼寫檢查的相關代碼放進這個分類中。
進一步的，分類中的方法是在運行時被加入類中的，這一特性允許程序員向現存的類中增加方法，而無需持有原有的代碼，或是重新編譯原有的類。例如若系統提供的字符串類的實現中不包含拼寫檢查的功能，可以增加這樣的功能而無需更改原有的字符串類的代碼。
在運行時，分類中的方法與類原有的方法并無區別，其代碼可以存取包括私有類成員變量在內的所有成員變量。
若分類聲明了與類中原有方法同名的函數，則分類中的方法會被調用。因此分類不僅可以增加類的方法，也可以代替原有的方法。這個特性可以用于修正原有代碼中的錯誤，更可以從根本上改變程序中原有類的行為。若兩個分類中的方法同名，則被調用的方法是不可預測的。
其它語言也嘗試了通過不同方法增加這一語言特性。在這方面走的更遠，不僅允許增加方法，更允許增加成員變量。也有其它語言使用面向聲明的解決方案，其中最值得注意的是Self語言。
C#與Visual Basic.NET語言以的與不完全類的方式實現了類似的功能。Ruby與一些動態語言則以"Monkey patch"的名字稱呼這種技術。
這個例子建立了Integer類，其本身只定義了integer屬性，然后增加了兩個分類Arithmetic與Display以擴展類的功能。雖然分類可以訪問類的私有成員，但通常利用屬性的存取方法來存取是一種更好的做法，可以使得分類與原有類更加獨立。這是分類的一種典型應用—另外的應用是利用分類來替換原有類中的方法，雖然用分類而不是繼承來替換方法不被認為是一種好的做法。
; ''Integer.h''
@interface Integer : Object
int integer;
@property (assign, nonatomic) integer;
; ''Integer.m''
#import "Integer.h"
@implementation Integer
@synthesize integer;
; ''Arithmetic.h''
@interface Integer(Arithmetic)
- (id) add: (Integer *) addend;
- (id) sub: (Integer *) subtrahend;
; ''Arithmetic.m''
#import "Arithmetic.h"
@implementation Integer(Arithmetic)
- (id) add: (Integer *) addend
self.integer = self.integer + addend.integer;
- (id) sub: (Integer *) subtrahend
self.integer = self.integer - subtrahend.integer;
; ''Display.h''
@interface Integer(Display)
- (id) showstars;
- (id) showint;
; ''Display.m''
#import "Display.h"
@implementation Integer(Display)
- (id) showstars
int i, x = self.integer;
for(i=0; i
Integer *num1 = Integer new, *num2 = Integer new;
printf("Enter an integer: ");
scanf("%d", &x);
num1.integer = x;
num1 showstars;
num2.integer = x;
num2 showstars;
num1 add:num2;
num1 showint;
可以利用以下命令來編譯：
gcc -x objective-c main.m Integer.m Arithmetic.m Display.m -lobjc
在編譯時間，可以利用省略#import "Arithmetic.h" 與num1 add:num2命令，以及Arithmetic.m文件來實驗。程序仍然可以運行，這表明了允許動態的、按需的加載分類；若不需要某一分類提供的功能，可以簡單的不編譯之。
Objective-C允許一個類在程序中完全取代另一個類，這種行為稱為前者“扮演”(Posing)目標類。
注意：類的扮演在Mac OS X v10.5中被廢棄，在64位運行時中不可用。
在C語言中，#include預處理指令總是使被包含的文件內容被插入指令點。在Objective-C中，類似的指令#import保證一個文件只會被包含一次，類似于一般頭文件中的#ifndef XXX
#define XXX ...
慣用法，或MSVC中的#pragma once
Objective-C++是GCC的一個前端，它可以編譯混合了C++與Objective-C語法的源文件。Objective-C++是C++的擴展，類似于Objective-C是C的擴展。由于在融合C++與Objective-C兩種語言的特性方面沒有做特別的工作，因此有以下限制：
* C++類不能從Objective-C類繼承，反之亦然。
* Objective-C定義內部不能定義C++命名空間。
* Objective-C類的成員變量不能包括不含默認構造函數和/或含有虛方法的C++類對象，但使用C++類指針并無如此限制（可以在 -init方法中對之進行初始化）。
* C++“傳遞值”的特性不能用在Objective-C對象上，而只能傳遞其指針。
* Objective-C聲明不能存在在C++模板聲明中，反之亦然。但Objective-C類型可以用在C++模板的參數中。
* Objective-C和C++的錯誤處理語句不同，各自的語句只能處理各自的錯誤。
* Objective-C錯誤使得C++對象被退出時，C++析構函數不會被調用。新的64位運行時解決了這個問題。
在2006年7月蘋果全球開發者會議中，Apple宣布了“Objective-C 2.0”的發布，其增加了“現代的垃圾收集，語法改進，運行時性能改進，以及64位支持”。2007年10月發布的Mac OS X v10.5中包含了Objective-C 2.0的編譯器。
Objective-C 2.0提供了一個可選的垃圾收集器。在向后兼容模式中，Objective-C運行時會將引用計數操作，例如“retain”與“release”變為無操作。當垃圾收集啟用時，所有的對象都是收集器的工作對象。普通的C指針可以以“__strong”修飾，標記指針指向的對象仍在使用中。被標記為“__weak”的指針不被計入收集器的計數中，并在對象被回收時改寫為“nil”。iOS上的Objective-C 2.0實現中不包含垃圾收集器。垃圾收集器運行在一個低優先級的后臺線程中，并可以在用戶動作時暫停，從而保持良好的用戶體驗。
Objective-C 2.0引入了新的語法以聲明變量為，并包含一可選定義以配置存取方法的生成。屬性總是為公共的，其目的為提供外部類存取（也可能為只讀）類的內部變量的方法。屬性可以被聲明為“readonly”，即只讀的，也可以提供儲存方法包括“assign”，“copy”或“retain”（簡單的賦值、復制或增加1引用計數）。默認的屬性是原子的，即在訪問時會加鎖以避免多線程同時訪問同一對象，也可以將屬性聲明為“nonatomic”（非原子的），避免產生鎖。
@interface Person : NSObject {
@public
NSString *name;
int age;
@property(copy) NSString *name;
@property(readonly) int age;
-(id)initWithAge:(int)age;
屬性的存取方法由@synthesize關鍵字來實現，它由屬性的聲明自動的產生一對存取方法。另外，也可以選擇使用@dynamic關鍵字表明存取方法會由程序員手工提供。
@implementation Person
@synthesize name;
@dynamic age;
-(id)initWithAge:(int)initAge
age = initAge; // 注意：直接賦給成員變量，而非屬性
-(int)age
return 29; // 注意：并非返回真正的年齡
屬性可以利用傳統的消息表達式、點表達式或"valueForKey:"/"setValue:forKey:"方法對來存取。
Person *aPerson = Person alloc initWithAge: 53;
aPerson.name = @"Steve"; // 注意：點表達式，等于aPerson setName: @"Steve";
NSLog(@"Access by message (%@), dot notation(%@), property name(%@) and direct instance variable access (%@)",
aPerson name, aPerson.name, aPerson valueForKey:@"name", aPerson->name);
為了利用點表達式來存取實例的屬性，需要使用“self”關鍵字：
-(void) introduceMyselfWithProperties:(BOOL)useGetter
NSLog(@"Hi, my name is %@.", (useGetter ? self.name : name)); // NOTE: getter vs. ivar access
類或協議的屬性可以被動態的讀取。
int propertyCount = 0;