赞
踩
在 Objective-C 中,SEL(Selector)是一种用来表示方法的类型。
它实际上是一个指向方法的指针,用于在运行时动态调用方法。
下面是一个使用 SEL 的代码示例:
- #import <Foundation/Foundation.h>
-
- @interface MyClass : NSObject
- - (void)method1;
- - (void)method2;
- @end
-
- @implementation MyClass
- - (void)method1 {
- NSLog(@"This is method1");
- }
-
- - (void)method2 {
- NSLog(@"This is method2");
- }
- @end
-
- int main() {
- SEL selector1 = @selector(method1);
- SEL selector2 = @selector(method2);
-
- MyClass *myObject = [[MyClass alloc] init];
-
- // 通过 SEL 调用方法
- if ([myObject respondsToSelector:selector1]) {
- IMP imp = [myObject methodForSelector:selector1];
- void (*func)(id, SEL) = (void *)imp;
- func(myObject, selector1);
- }
-
- if ([myObject respondsToSelector:selector2]) {
- IMP imp = [myObject methodForSelector:selector2];
- void (*func)(id, SEL) = (void *)imp;
- func(myObject, selector2);
- }
-
- return 0;
- }
最终的输出结果将会是:
- This is method1
- This is method2
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。