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