《EOC》第1章 熟悉Objective C

2021-09-24 08:04:18 字數 1195 閱讀 7613

使用訊息結構的語言,其執行時所執行的**由執行環境來決定;而使用函式呼叫的語言,則由編譯器決定。如果呼叫的函式是多型的,那麼在執行時就要按照「虛方法表」來查出到底應該執行哪個函式。而採用訊息結構的語言,不論是否多型,總是在執行時才會去查詢所要執行的方法。

指標是分配在 stack 上的,物件是分配在 heap 中。指標指向堆中的資料。

如果只需要儲存「非物件型別」,那麼通常使用結構體就可以了。與建立結構體相比,建立物件還需要額外開銷,例如分配及釋放堆記憶體等。

@class:類的向前宣告

必須引入標頭檔案的情況:繼承、協議

字面量語法更加安全:有 nil 就 crash,普通語法是有 nil 就停止,所以會碰到少新增元素的情況。

這種情況是在用字面量語法建立字典的過程中插入了空值,導致了 crash。如果使用一般的構造方法,碰到空值會認為是結束符,而停止錄入之後的元素,這樣就會存在少新增元素的狀況。

語法糖:也成「語法糖衣」,是指計算機語言中與另外一套語法等效但是開發者用起來卻更加方便的語法。

侷限性:字面量語法有個小小的限制,就是除了字串以外,所建立出來的物件必須屬於 foundation 框架才行。如果自定義了這些類的子類,則無法用字面量語法建立其物件。要想建立自定義子類的例項,必須採用「非字面量語法」。

使用 #define 定義出來的常量沒有型別的資訊。使用 static const 來定義常量包含型別資訊,其好處是清楚的描述了常量的含義。

常用的命名法:若常量侷限於某「編譯單元(也就是實現檔案 .m 內)」,則在前面加字母 k,若常量在類之外可見,則通常以類名作為字首。

通知格式

.h: extern nsnotificationname const ***xx;

.m: nsnotificationname const ***xx = @「***xx";

複製**

#define 的優點(視情況而定)

選項用按位或 「|」 可以選擇多項。用按位與 「&」 可以進行判斷是否開啟該選項。列舉 nsenum、選項 nsoptions。

swithc中,若用列舉來定義狀態機,最好不要加入 default 語句,如果稍後又加了乙個狀態,那麼編譯就會發出警告資訊,提示新加入的狀態並未在 switch 分支中處理。

第1章 導言

本章作為整個c語言學習的框架 1.1 入門 轉義字元 n只代表乙個字元。轉義字元為表示無法輸入的字元或不可見的字元提供一種通用可擴充的機制。t 製表符,b 回退符,雙引號,反斜槓符本身。要將它們列印出來,則在斜槓前再加 前加 1.2 變數與算術表示式 1 c語言中,所有變數都必須在函式起始處先宣告,...

第1章 起點

第1章起點 寫乙個最最簡單的程式 hello world。print hello world 假定你把上面這句儲存在 hello.lua 檔案中,你在命令列只需要 prompt lua hello.lua 看到結果了嗎?讓我們來看乙個稍微複雜點的例子 defines a factorial func...

第1章 簡介

桉樹企業版 ee 2.0是乙個基於linux體系架構,對企業資源 硬體 儲存 網路 統一管理的雲平台。桉樹雲是iaas層面的雲平台,對基礎裝置進行管理和擴充套件,為企業提供私有雲 可以部署在企業的防火牆之內,僅供企業內部使用,確保資料的安全性 和混合雲部署方案。桉樹在設計之初就考慮了易用性 模組化和...