標籤:android style blog class tar ext
iOS Foundation 架構基類
太陽火神的美麗人生 (http://blog.csdn.net/opengl_es)
本文遵循“署名-非商業用途-保持一致”創作公用協議
轉載請保留此句:太陽火神的美麗人生 - 本部落格專註於 敏捷開發及移動和物聯裝置研究:iOS、Android、Html5、Arduino、pcDuino,否則,出自本部落格的文章拒絕轉載或再轉載,謝謝合作。
基類 |
Title |
Topic |
Date |
NSObject Class Reference |
Data Types & Collections |
Minor Change |
NSObject Protocol Reference |
Data Types & Collections |
Minor Change |
NSNull Class Reference |
Data Types & Collections |
Minor Change |
NSValue Class Reference |
Data Types & Collections |
Minor Change |
NSUUID Class Reference |
Data Types & Collections |
Minor Change |
NSCopying Protocol Reference |
- |
Minor Change |
NSMutableCopying Protocol Reference |
- |
Minor Change |
NSMethodSignature Class Reference |
Data Types & Collections |
Minor Change |
Objective-C Runtime Reference |
Objective-C |
Minor Change |
Advanced Memory Management Programming Guide |
Performance |
Minor Change |
NSAutoreleasePool Class Reference |
- |
Minor Change |
首先我們瞭解一下,物件導向與基於對象,下面引用一段別人部落格的闡述:
“物件導向大家都很熟悉,可是基於對象就不一定了。兩個聽起來好象是同一回事,而事實上它們卻千差萬別。基於對象是指:我們採用對象封裝技術,將資料和操作捆綁在一起,但是並沒有合理地使用多態、繼承等物件導向技術進行軟體設計。其中的“沒有合理使用”這一修飾非常重要,它道出了物件導向和基於對象的本質區別。
雖然,聽起來物件導向我們很是熟悉,但就我的觀察,很多以前從事C程式開發的人,當他採用物件導向的程式設計語言(如C++)進行開發時,寫出來的程式卻是基於對象的。或者說他們是採用物件導向的語言編寫面向過程的程式!”
引用這段話,應原作者要求,需貼上下面的轉載說明:
原創作品,允許轉載,轉載時請務必以超連結形式標明文章 原始出處 、作者資訊和本聲明。否則將追究法律責任。http://yunli.blog.51cto.com/831344/184846
在軟體設計領域中,“面向對象”是專指在程式設計中採用封裝、繼承、多態等設計方法。
這其中提到的“繼承”,涉及到基類和衍生類別,
基類:通過繼承機制,可以利用已有的資料類型來定義新的資料類型。所定義的新的資料類型不僅擁有新定義的成員,而且還同時擁有舊的成員。我們稱已存在的用來派生新類的類為父類,也就是基類。
這樣看來,確實有必要,在瞭解 iOS 強大功能之前,先掌握基類提供了哪些功能,這樣便可上下自如,遊刃有餘。
上面列表中的內容,大體可以分類幾部分,一是 NSObject 基類相關的,一是採納的基類相關協議,再就是運行時及反射相關功能,最後就是記憶體管理。
而其中有三個,應屬於集合部分,但考慮到僅是準備階段,那麼就放到基類部分來研究為好:
NSNull Class Reference |
Data Types & Collections |
Minor Change |
NSValue Class Reference |
Data Types & Collections |
Minor Change |
NSUUID Class Reference |
Data Types & Collections |
Minor Change |
這三個類,應該說都是為集合而生,NSNull 是為了 nil 能作為集合的元素;NSValue 是為了能使標量能作為集合元素;而NSUUID,則是要能夠作為集合元素的自訂對象必須實現的對象是否相等的判定方法所返回的標識該對象的唯一值,當沒有值可用時,可使用 UUID來確保唯一;不過 NSUUID 也是取消的裝置唯一編號的一種替代方案,但我認為它並不一定專為它而生!
接下來,先研究 NSObject 這個絕大多數類的基類以及相應的協議,這些協議方法對日後的使用也很關鍵,該基類將其衍生類別與系統運行時有機地聯結起來,這樣 iOS 提供的強大功能便在掌握之中,並可在掌握其基本運行機理的情況下,有效地進行擴充。真可謂,上可升天,下可遁地。
1、NSObject 基類及相關協議