首页
Web开发
Windows程序
编程语言
数据库
移动开发
系统相关
微信
其他好文
会员
首页
>
其他好文
> 详细
类本质的是? 类的加载过程?
时间:
2016-04-09 00:22:34
阅读:
146
评论:
0
收藏:
0
[点我收藏+]
标签:
类本质的东西
类也是一个对象;
Person对象的类型是Class类型,Class里面包含了*
类本身也是对象,是个Class类型的对象;简称类对象;
利用Person类对象 创建Person类型的对象;
利用Class类型创建Person类对象;
//获取内存中的类对象
Class c = [p class];
Class c2 = [p2 class];
也可以用Person类来获取类对象;
Class c3 = [Person Class];
我们要查看p和p2的类对象,就是利用类方法class获得,c和c2的类对象都是Person类,而Person类本身就是Class类型;
class类型的数据就是class对象;class是一个类方法;
如果本身是指针,就不需要加&就可以打印地址;如果不是指针类型,就用&取地址;
类对象 == 类;
一个类也可以叫类对象,因为它本身也是通过Class类创建出来的;如
Person *p = [[Person alloc]init];
Class c = [p class];
[c test];
c *p2 = [[c new]init];
上面的语句都是成立的,
类的加载过程;
不掌握这个东西也可以开发;
下面的操作都是会先调用父类的方法;
load是程序启动的时候调用;initialize是第一次使用类的时候调用;
调用子类的过程,会先调用父类的方法;如有3个类,a是父类,b是a的子类,c是b的子类,那么第一次使用b类的时候,会先加载3个类的load方法;然后调用父类的initialize的方法,再调用b类的initialize的方法;
如果有分类,就先调用分类的initilize方法;
当程序启动的时候,就会加载一次项目中所有的类,类加载完毕后就会调用+load方法
+ (void)load
{
}
当第一次使用这个类的时候,就会调用一次initialize方法;
+ (void)initialize
{
}
总结:
当程序启动是,就会加载项目中所有的类和分类,而且加载后会调用每个类和分类的+load方法,只会调用一次。
当第一次使用某个类时,就会调用当前类的+initialize方法;
先加载父类,再加载子类(先调用父类的+load方法,再调用子类的+load方法)
先初始化父类,在初始化子类(先调用父类的+initialize方法,再调用子类的+initialize方法)
先加载父类,再加载子类;
先加载父类,再加载分类;
。
Class c = [Person class];
Person *p2 = [c new];
类本质的是? 类的加载过程?
标签:
原文地址:http://www.cnblogs.com/williamliuwen/p/5370399.html
踩
(
0
)
赞
(
0
)
举报
评论
一句话评论(
0
)
登录后才能评论!
分享档案
更多>
2021年07月29日 (22)
2021年07月28日 (40)
2021年07月27日 (32)
2021年07月26日 (79)
2021年07月23日 (29)
2021年07月22日 (30)
2021年07月21日 (42)
2021年07月20日 (16)
2021年07月19日 (90)
2021年07月16日 (35)
周排行
更多
分布式事务
2021-07-29
OpenStack云平台命令行登录账户
2021-07-29
getLastRowNum()与getLastCellNum()/getPhysicalNumberOfRows()与getPhysicalNumberOfCells()
2021-07-29
【K8s概念】CSI 卷克隆
2021-07-29
vue3.0使用ant-design-vue进行按需加载原来这么简单
2021-07-29
stack栈
2021-07-29
抽奖动画 - 大转盘抽奖
2021-07-29
PPT写作技巧
2021-07-29
003-核心技术-IO模型-NIO-基于NIO群聊示例
2021-07-29
Bootstrap组件2
2021-07-29
友情链接
兰亭集智
国之画
百度统计
站长统计
阿里云
chrome插件
新版天听网
关于我们
-
联系我们
-
留言反馈
© 2014
mamicode.com
版权所有 联系我们:gaon5@hotmail.com
迷上了代码!