iOS 高階 第二十二天 0603

2022-01-16 02:37:23 字數 767 閱讀 5471

block

block的本質是乙個指向結構體的指標.

執行時要分析clang命令反編譯出來的c++**,就要把一些小括號刪掉來分析.因為這些小括號一般都是型別強轉.

oc底層runtime是通過objec_msgsend這種訊息派發機制給乙個物件傳送訊息呼叫指定的方法的.如下圖:

我用過執行時的東西來寫**,如下示例:

1、通過runtime底層**的方式給乙個物件的成員變數賦值,**如下圖:

2、分類擴充成員變數

本來分類是不能擴充成員變數的,但通過執行時的方法就能擴充成員變數,**如下圖:

c#中的反射,可以獲取乙個物件包含成員變數名稱和型別及其所能呼叫的方法.這個在oc的執行時runtime底層中一樣可以實現,如下圖所示:

block,下面的一些解釋一定要注意

第二十二天

區域性變數和全域性變數 在乙個函式內部定義的變數是內部變數,他只有在本函式範圍內才有效,在此函式之外是不能使用這些變數的,這稱為區域性變數。復合語句的的變數是可以用 全域性變數也叫外部變數 全域性變數從 定義從 開始用 變數的儲存類別 從空間上講剛剛的就是作用域 從空間 還可以從變數值存在的時間 生...

2018 05 28 第二十二天

class testarraysort static void main string args int compare tiger arg0,tiger arg1 int age int getage void setage int age void setname string name voi...

第二十二天實訓!!!!

類方法 也稱為靜態方法,表示類中物件的共有行為 宣告時前面需加 static 修飾符 不能被宣告為抽象的 類方法可以在不建立物件的情況下用類名直接呼叫,也可用類例項呼叫 包 是一組類的集合 乙個包可以包含若干個類檔案,還可包含若干個包 包的作用 將相關的源 檔案組織在一起 類名的空間管理,利用包來劃...