背景
object graph: 對象圖室抽,相比于反映類際關(guān)系的UML,對象圖用于反映某一時間點各對象之間的相互聯(lián)系恤煞,對象的互聯(lián)網(wǎng)絡(luò)稱為對象圖, 可以用來描述app當前的運行狀態(tài)崭篡。它是一張有向圖砂缩,對象之間的關(guān)系由指針體現(xiàn)。
dynamic typing: a variable is dynamically typed when the type of the object(s) it will name is not specified at compile time. A program is dynamically typed if it uses at least one dynamically typed variable. A language supports dynamic typing if it is possible to write dynamically typed programs in it. A language is dynamically typed if most variables in typical programs written in that language are dynamically typed.
dynamic binding: 調(diào)用對象的方法,或者使用參數(shù)調(diào)用函數(shù)時會根據(jù)對象實際類型鹏漆,選擇正確的方法調(diào)用,與靜態(tài)綁定的區(qū)別在于靜態(tài)綁定的方法及函數(shù)調(diào)用在編譯期已經(jīng)確定了创泄。動態(tài)綁定的最大好處在于在組件對象編程中艺玲,不需要編譯器在編譯期引用包含了所使用的對象的庫。
OC提供語言級的對象圖管理及對象直接量的支持鞠抑,同時提供動態(tài)類型(the property of a language where type checks are performed mostly at run time)及動態(tài)綁定饭聚,以將更多的工作推遲到程序運行的過程中。
categories擴展再有的類:與其創(chuàng)建全新的類以增加相對于現(xiàn)存的類很少的功能搁拙,更合理的做法是在現(xiàn)存類的基礎(chǔ)上添加自定義的行為秒梳,可以為任何類添加自定義方法,即使是拿不到源碼的系統(tǒng)類箕速。
protocols提供消息契約
Block簡化公共任務(wù):