oc中的选择器SEL

今天说一下oc中一个重要的东西,就是oc中的选择器,选择器是用来选取我们的方法的,有点类似于函数指针,SEL变量是用来装消息的。

SEL创建

//用关键字selector来指向方法体
SEL sel = @selector(crash);
//用SEL来调用我们的方法
[man performSelector:sel];
//带参数的方法调用
[man performSelector:@selector(setName:) withObject:@"Tom"];

在ARC模式下使用SEL通常会有警告显示,此时可以使用以下代码去除警告

//在ARC(自动内存管理)的条件下,使用选择器,很可能会报警
//可照如下方式去除报警
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Warc-performSelector-leaks"

/*调用方法写这里*/

#pragma clang diagnostic pop

有时候我们使用方法的时候是需要在程序运行的时候来确定我们具体需要调用哪个方法的。此时我们可以使用如下的方法:

SEL sel = @selector(run);
//这个方法用于编译时就能确定调用的方法

SEL sel = NSSelectorFromString(@"run");
//这个方法用于运行时确定调用的方法

练习 给可变数组添加方法,可以添加任何对象,按照对象的某一个属性,排序

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值