关于OC的类方法和实例方法的获取
2021/9/17 6:07:56
本文主要是介绍关于OC的类方法和实例方法的获取,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
一、在了解类方法和实例方法之前先要知道:什么是实例、什么是类对象、什么是元类对象
1、程序运行之后,存在的类就创建了对应的类对象和元来对象(把他们看成一个对象,而不是简单的类;即一个的实例)(对应的类对象和元类对象都是唯一的)
2、当创建一个类的实例的时候,则会有一个指针指向了对应的类对象(isa),如下图所示
3、类对象中存放了对应的实例方法, 元类对象中存放了对应的类方法(静态成员函数)所以要获取对应的实例方法时候可以通过[Student class]的方式; 该方式获取到的是对应的类对象,既然这样子那能否通过[[Student class] class]获取都对应的元类对象呢?答案是不行的,class方法,只能获取到本类对象,而无法获取本类对象对应的元类对象。要获取对应的元类对象则需要使用:object_getClass([Student class])的方式来获取
具体的元类跟类还有实例的关系可以看Objective-C高级编程 iOS与OS X多线程和内存管理.pdf
未完待续
这篇关于关于OC的类方法和实例方法的获取的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23增量更新怎么做?-icode9专业技术文章分享
- 2024-11-23压缩包加密方案有哪些?-icode9专业技术文章分享
- 2024-11-23用shell怎么写一个开机时自动同步远程仓库的代码?-icode9专业技术文章分享
- 2024-11-23webman可以同步自己的仓库吗?-icode9专业技术文章分享
- 2024-11-23在 Webman 中怎么判断是否有某命令进程正在运行?-icode9专业技术文章分享
- 2024-11-23如何重置new Swiper?-icode9专业技术文章分享
- 2024-11-23oss直传有什么好处?-icode9专业技术文章分享
- 2024-11-23如何将oss直传封装成一个组件在其他页面调用时都可以使用?-icode9专业技术文章分享
- 2024-11-23怎么使用laravel 11在代码里获取路由列表?-icode9专业技术文章分享
- 2024-11-22怎么实现ansible playbook 备份代码中命名包含时间戳功能?-icode9专业技术文章分享