iOS SEL型別和建立

2021-09-06 11:32:34 字數 745 閱讀 7715

sel

selaction =nsselectorfromstring([

actionarrayobjectatindex:indexarray]);

[item addtarget:self

action:selaction];

objective-c在編譯的時候,會根據方法的名字(包括引數序列),生成乙個用 來區分這個方法的唯一的乙個id,這個id就是sel型別的。我們需要注意的是,只要方法的名字(包括引數序列)相同,那麼它們的id都是相同的。就是 說,不管是超類還是子類,不管是有沒有超類和子類的關係,只要名字相同那麼id就是一樣的。

我們可以方便的通過方法的名字,獲取到方法的id也就是我們所說的sel,反之亦然。具體的使用方法如下: 

1     sel 變數名 = @selector(方法名字); 

2     sel 變數名 = nsselectorfromstring(方法名字的字串); 

3     nsstring *變數名 = nsstringfromselector(sel引數); 

這樣的機制大大的增加了我們的程式的靈活性,我們可以通過給乙個方法傳遞sel引數,讓這個方法動態的執行某乙個方法;我們也可以通過配置檔案指定需要執行的方法,程式讀取配置檔案之後把方法的字串翻譯成為sel變數然後給相應的物件傳送這個訊息。

從效率的角度上來說,執行的時候不是通過方法名字而是方法id也就是乙個整數來查詢方法,由於整數的查詢和匹配比字串要快得多,所以這樣可以在某種程度上提高執行的效率。

iOS SEL的用法和講解

1 什麼是sel 可理解成 selector 方法選擇器。於是乎就可說成是c中的指標函式。而在oc裡不能用指標函式,所有就只能搞乙個 selector這來取了。他的結果是sel型別,用assgin修飾。去取方法的編號 函式位址 2 使用 2.1 示例 selview.h sel實現 import i...

MySQL資料型別區別和建立表

數值 拓展 阿里巴巴開發手冊 每乙個表,都必須存在以下五個字段!表示乙個記錄存在的意義,必須要這五個欄位來判斷它,來保證它的乙個健壯性和安全性。id 主鍵,自增的 version 樂觀鎖is delete 偽刪除,用了乙個標誌位判斷,就設為1,就認為刪除了,但在資料庫中還存在,方便管理員檢視被刪除的...

visual C ( )使用列舉和結構建立值型別

9.2 使用結構 用關鍵字enum。enum season season colorful season.fall console.writeline colorful 列舉內部的每個元素都關聯乙個整數值。預設第乙個元素對應0,後面每個元素對應的整數都遞增1。也可以手動將特定整數常量和列舉型別的字面...