美文网首页
Objective-C 碎碎念 5

Objective-C 碎碎念 5

作者: 大地瓜123 | 来源:发表于2017-08-23 14:34 被阅读0次

本文为大地瓜原创,欢迎知识共享,转载请注明出处。
虽然你不注明出处我也没什么精力和你计较。
作者微信号:christgreenlaw


本节主要学习了对OC类的分析。

类的本质

类在OC中也是一个对象,这个类对象会在类第一次被使用时创建。
有了类对象后,可以通过类对象来创建实例对象。
实例对象中有一个isa结构,指向自己的类对象。

类对象中保存了该类的所有对象方法,当给一个实例对象发送消息时,会到实例对象isa指针对应的类对象中查找。

若要获取类对象,则向类名或者实例对象发送class消息,将会获得一个Class类型的对象,也就是类对象。

Person *p1 = [[Person alloc]init];
Person *p2 = [[Person alloc]init];

Class c1 = [p1 class];
Class c2 = [p2 class];
Class c3 = [Person class];
NSLog(@"c1 = %p, c2 = %p, c3 = %p", c1, c2, c3);
//一个类在内存中只有一个类对象
类对象的输出.png

类对象能用来干嘛呢?

创建实例对象

Person *p3 = [[c1 alloc] init];

调用类方法

[c1 test];

其实类对象的使用方法和类名是一样的。

类的加载逻辑

当程序启动时,所有的类代码就会加载到内存中
load方法会在当前类被加载到内存时调用,且只会调用一次
如果存在继承关系,则会先调用父类的load方法,在调用子类的load方法(此时类对象还没有创建,只是类代码加载到了内存中)

当前类第一次使用到的时候回调用initialize方法(也就是创建类对象时)
initialize方法只会被调用一次
initialize方法用于对某个类进行一次性的初始化
如果存在继承关系,则会先调用父类的initialize方法,在调用子类的initialize方法

相关文章

  • Objective-C 碎碎念 5

    本文为大地瓜原创,欢迎知识共享,转载请注明出处。虽然你不注明出处我也没什么精力和你计较。作者微信号:christg...

  • 第一次投稿的反思

    我的第5篇碎碎念 ahuan22 2016.12.18. 前几天把第4篇碎碎念投稿了,刚刚查看进度,...

  • 改观

    我很少写碎碎念,但喜欢看别人的碎碎念。 最近几天阅读,发现碎碎念的文章少了。 讲真,碎碎念,发泄居多,正能量少。 ...

  • 2018-10-18

    碎碎念 碎碎念 很烦碎碎念 生活的确是琐碎,可我很讨厌碎碎念。 爸爸是个很软弱的人,生活只是基本自理,并不追求...

  • 2020年,我在百家号里的美食碎碎念之五十二

    今天和几个朋友一起聚餐,久别重逢,都非常开心。 感恩时光让我们相遇。 继续转发我的美食碎碎念。 天天碎碎念——第5...

  • 发现日常工作碎碎念

    碎碎念害人,紫雨老师手帐课里面曾经就碎碎念单独有专门的一节课,而且我的碎碎念也是很多,这些不经意的碎碎念就会让我们...

  • 08主题碎碎念追踪:如何发现高频发的碎碎念和场景剧情?课后感

    这节课老师讲的是记录主题式的碎碎念的方法。 主题式的碎碎念:就是从日常碎碎念中把主题式碎碎念给抽离出来。 自己最长...

  • 碎碎念~~5~~

    写完上一篇文,我下意识地瞄了一眼主页。瞧见“小卜姑娘”在“简书”上的码字数要破10万字的证据后,我的内心就一直翻滚...

  • 碎碎念5

    一人要学会有自制力才不会后悔的时候那么无力我要学着做不后悔的事过不后悔的人生前方未知,把握现在二看到上家上了一些风...

  • 碎碎念5

    美好的一天从早起开始! 昨天晚上和亚思聊了聊,心情好了许多。其实道理我们都懂,但就是无法说服自己不去想负面...

网友评论

      本文标题:Objective-C 碎碎念 5

      本文链接:https://www.haomeiwen.com/subject/clvddxtx.html