• Object C函数指针@selector


    其作用相当于函数指针,现在我看到的大多说用法都是在调用某些函数需要传递一个 函数指针 参数时,使用@selector。它会在当前类里面查找selector后面所跟的函数,返回一个SEL类型的值。

     SEL变量的执行.用performSelecor方法来执行.

    [对象 performSelector:SEL变量 withObject:参数1 withObject:参数2];

    在调用respondsToSelector:@selector(method)时,这个method只有在该方法存在参数时需要 ":",如果该方法不需要参数就不需要加这个冒号。否则,编译不会报错,只是执行返回的值不对。当然如果方法有多个参数,需要多个冒号,参数有名称的需要带上参数名称。

    如:有如下方法:

    -(NSString*)toXmlString;

    此时调用类似于:

    [self respondsToSelector:@selector(toXmlString)]

    如果toXmlString方法的定义为:

    -(NSString*)toXmlString:(NSString*)prefix;

    那么调用就必须加上冒号,如:[self respondsToSelector:@selector(toXmlString:)]

    • -(BOOL) isKindOfClass: classObj 用来判断是否是某个类或其子类的实例
    • -(BOOL) isMemberOfClass: classObj 用来判断是否是某个类的实例
    • -(BOOL) respondsToSelector: selector 用来判断是否有以某个名字命名的方法(被封装在一个selector的对象里传递)
    • +(BOOL) instancesRespondToSelector: selector 用来判断实例是否有以某个名字命名的方法. 和上面一个不同之处在于, 前面这个方法可以用在实例和类上,而此方法只能用在类上.
    • -(id) performSelector: selector 执行某个方法

    本文出自 “人生得意须尽欢” 博客,请务必保留此出处http://no001.blog.51cto.com/1142339/643237

  • 相关阅读:
    js看懂funid与funname各自的作用以及回显示是怎么找到对应位置的
    居然脑海中还记得03年的瑞星升级ID号
    [恢]hdu 2186
    [恢]hdu 2109
    [恢]hdu 2140
    [恢]hdu 2160
    [恢]hdu 2101
    [恢]hdu 2162
    [恢]hdu 2201
    [恢]hdu 2163
  • 原文地址:https://www.cnblogs.com/cy568searchx/p/6374550.html
Copyright © 2020-2023  润新知