黑马程序员_OC中的selector

---------------------- ASP.Net+Unity开发.Net培训、期待与您交流! ----------------------


在OC中,selector在源代码中被用来指向一个对象的,selector代表这个方法的名称。selectors类型为SEL,所有名称相同的方法都有同样的selector。应该使用@selector()指令将方法名传递给编译的selector,而不是直接使用一个方法的全名。如下:

SEL sel = @selector(foo:);

当你需要将某个字符串转换为selector时,可以使用NSSelectorFromString(aBuffer),如:

SEL sel = NSSelectorFromString(@"foo:");

也可以使用NSStringFromSelector(sel)进行反向转换:

NSString *method = NSStringFromSelector(sel);

具有相同名称的类方法和实例方法也被分配了相同的selector,单因为他们属于不同的领域,这两者之间也不会产生混淆。

_cmd


_cmd是一个隐藏的参数,代表当前方法的selector,他和self一样是每个方法调用时都会传入的参数。如:

void print(void)
{
        NSLog(@"%@", NSStringFromSelector(_cmd));
}

会打印方法名print。


注意:_cmd只能在OC方法中使用,不能在C函数中使用。如不能在main函数中使用。


---------------------- ASP.Net+Unity开发.Net培训、期待与您交流! ----------------------

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值