首先,OC是一门编程语言,Foundation是一个为OC而生的为了方便程序员使用的编程框架。
这里可以用各司其职来形容它们:
作为一门面向对象编程语言,OC本身只需要关注自己的对象模型的管理,也就是它只需要管理好OC对象,类,这些东西的组织和联系。
而作为一个基于OC的框架,Foundation关注的则是让程序员更方便的使用OC语言进行编程。
以上的说明看似是废话,或者说只要是使用OC的程序员都知道的。但是我觉得我没有深刻的理解它,我本身是大三学生,学习的过程中就喜欢深究原理,加上之前鼓捣过半年一年的嵌入式,什么东西都感觉还是弄得清清楚楚,用起来才会踏实,所以翻阅各种帖子研究了一下OC对象模型的实现,在这里总结一下。
从很眼熟的NSString和NSObject开始吧。
NSString不用说了,字符串类,每天都在用。NSObject这个也熟的不行,我们使用的类基本上都继承自它。然而这里要说的是,严格来说,它们的等级不同,或者说分属不同的范围:NSObject属于OC语言定义的内容,而NSString则是由Foundation框架提供的。

本文深入探讨了Objective-C(OC)的对象模型,包括OC作为编程语言如何管理对象、类,以及Foundation框架的角色。OC的对象核心是NSObject,它提供对象创建、初始化、内存管理等基础功能。Foundation框架则提供如NSString等常用数据类型,方便程序员使用。对象通过isa指针与objc_class结构体建立联系,实现类、对象和方法的组织。对象的方法调用通过isa指针找到对应的类或元类来执行,元类负责存储类方法。这种设计允许OC高效地管理和调用方法。
最低0.47元/天 解锁文章
509

被折叠的 条评论
为什么被折叠?



