iOS SEL的用法和講解

2021-07-25 18:59:37 字數 1829 閱讀 7684

1:什麼是sel:

可理解成@selector(),方法選擇器。於是乎就可說成是c中的指標函式。而在oc裡不能用指標函式,所有就只能搞乙個@selector這來取了。

他的結果是sel型別,用assgin修飾。去取方法的編號(函式位址)

2:使用

2.1 示例**

selview.h

/**sel實現*/

#import

@inte***ce selview : uiview

/**自定義的sel*/

@property (nonatomic, assign) sel custommethod;

/**正常呼叫函式*/

-(void)printfstring:(nsstring *)msg;

/**sel呼叫*/

-(void)testmethod;

/**sel呼叫帶引數*/

-(void)testmethod:(nsstring *)msg;

-(void)runmethod;

@end

selview.m

#import

"selview.h"

@implementation selview

-(void)printfstring:(nsstring *)msg

/**無引數函式*/

-(void)testmethod

/**有引數函式*/

-(void)testmethod:(nsstring *)msg

-(void)runmethod

}

2.2 呼叫詳解

//例項化物件

selview *views =[[selview alloc] init];

2.2.1 正常呼叫的方式如下

[views printfstring:@"1:自定義的列印功能"];
2.2.2 傳入sel方法呼叫

notice:這裡我們用的@selector方法一定要是當前sel類中的函式,應為當前class是乙個isa指標,而這個@selector就是呼叫當前isa中方法,取其中的編號。

/**傳入的方法*/

views.custommethod = @selector(testmethod);

這裡的testmethod就是當前views中的方法。否則當前物件無target,就會有錯!

2.2.3 執行selector和傳參

/**無引數函式*/

[views performselector:@selector(testmethod)];

/**有引數函式*/

[views performselector:@selector(testmethod:) withobject:@"傳入引數"];

2.2.4 sel和nsstring裝換

/**將乙個字串轉換成sel型別*/

iOS SEL型別和建立

sel selaction nsselectorfromstring actionarrayobjectatindex indexarray item addtarget self action selaction objective c在編譯的時候,會根據方法的名字 包括引數序列 生成乙個用 來區...

oracle minus用法和講解

minus運算的主要功能是 在進行兩個 或者兩個查詢結果的時候,返回在第乙個 查詢結果中與第二個 查詢結果不相同的記錄 比如a表中資料如下 id name address tel 1 abc aaaa 123456 2 abd bbbb 123455 3 abe ccccc 111111 比如b表中...

iOS SEL的簡單總結

複製 inte ce person nsobject void test1 void test2 end 根據.h檔案中定義的person類和方法 執行完這行 在記憶體中如下 person person person alloc init 複製 sel就是對方法的一種包裝。包裝的sel型別資料它對應...