iOS 關於SEL的簡單介紹

2021-07-01 21:00:01 字數 1642 閱讀 7615

sel就是對方法的一種包裝。包裝的sel型別資料它對應相應的方法位址,找到方法位址就可以呼叫方法。在記憶體中每個類的方法都儲存在類物件中,每個方法都有乙個與之對應的sel型別的資料,根據乙個sel資料就可以找到對應的方法位址,進而呼叫方法。

@inte***ce person : nsobject 

+ (void

)test1; 

- (void

)test2; 

@end 

// 根據.h檔案中定義的person類和方法 執行完這行** 在記憶體中如下

sel就是對方法的一種包裝。包裝的sel型別資料它對應相應的方法位址,找到方法位址就可以呼叫方法

1.方法的儲存位置

2.sel物件的建立

sel s1 = @selector(test1); 

// 將test1方法包裝成sel物件 

sel s2 = nsselectorfromstring(@"test1"

); // 將乙個字串方法轉換成為sel物件

3.sel物件的其他用法

// 將sel物件轉換為nsstring物件

nsstring *str = nsstringfromselector(@selector(test)); 

person *p = [person new

]; // 呼叫物件p的test方法

[p performselector:@selector(test)];

/******************************* person.h檔案 **********************************/

#import 

@inte***ce person : nsobject 

- (void

)test1; 

- (void

)test2:(nsstring *)str; 

@end 

/******************************* person.m檔案 **********************************/

#import "person.h"

@implementation person 

- (void

)test1 

- (void

)test2:(nsstring *)str 

@end 

/******************************* main.m檔案 **********************************/

#import "person.h"

#import 

/*呼叫方法有兩種方式:

1.直接通過方法名來呼叫

2.間接的通過sel資料來呼叫

*/int

main(

intargc, 

const

char

* argv) 

IOS 關於SEL的簡單總結

sel就是對方法的一種包裝。包裝的sel型別資料它對應相應的方法位址,找到方法位址就可以呼叫方法 1.方法的儲存位置 2.sel物件的建立 sel s1 selector test1 將test1方法包裝成sel物件 sel s2 nsselectorfromstring test1 將乙個字串方法...

關於SEL的簡單總結

sel就是對方法的一種包裝。包裝的sel型別資料它對應相應的方法位址,找到方法位址就可以呼叫方法。在記憶體中每個類的方法都儲存在類物件中,每個方法都有乙個與之對應的sel型別的資料,根據乙個sel資料就可以找到對應的方法位址,進而呼叫方法。根據.h檔案中定義的person類和方法 執行完這行 在記憶...

SEL的簡單解釋

sel就是對方法的一種包裝。包裝的sel型別資料它對應相應的方法位址,找到方法位址就可以呼叫方法 1.方法的儲存位置 2.sel物件的建立 sel s1 selector test1 將test1方法包裝成sel物件 sel s2 nsselectorfromstring test1 將乙個字串方法...