欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

SEL数据类型

发布时间:2023/12/16 编程问答 41 豆豆
生活随笔 收集整理的这篇文章主要介绍了 SEL数据类型 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

SEL

SEL是一种数据类型,表示的是方法的存储位置。
假设有一个Person类,实例化该类后就有了person对象,那么每个对象都会有一个isa指针指向该类的代码存储区。在代码存储区中,会有SEL包装过的一些方法的调用地址,通过SEL指向的地址来调用该具体的方法。
用下代码来解释,也许会更清晰点:

SEL func = @selector(stringByAppendingString:);NSString* abc = @"abc";abc = [abc performSelector:func withObject:@"hhh"];NSLog(@"%@",abc);

如代码中所示,首先用SEL声明了一个方法的名称,
接着创建了一个NSString类的对象abc,那么这个对象创建的时候,相对应的会有一个isa指针指向该类的一些方法名称,比如
SEL s1 = stringByAppendingString:
如此这般
每个对象都可以通过performSelector: withObject:方法去查方法表里是否有这个方法,有的话,就会指向方法地址去调用,没有的话,就会报错,后面的withObject:指的是调用该方法所传入的参数。
运行结果:

2021-12-02 18:24:43.448285+0800 text2021[56483:6681024] abchhh

总结

以上是生活随笔为你收集整理的SEL数据类型的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。