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型別資料它對應...