Objective-C 语言入门与深入解析
1. 语言与库的边界
在动态语言中,区分语言本身和库的界限是比较困难的。以 Smalltalk 为例,其语言中没有类似 if 语句的结构,标准库定义了 True 和 False 单例类,通过接收带闭包参数的 -ifTrue: 消息来实现流程控制,所有复杂的流程控制结构,如循环或枚举,都是基于此实现的。
Objective-C 从 C 语言继承了流程控制,但所有动态行为由运行时库提供。这与 C 或 C++ 不同,一个独立的 C 或 C++ 二进制文件可以不调用 libc 或 libstdc++ 中的任何函数,但非纯 C 的 Objective-C 程序必须链接 libobjc 才能运行。
传统上,这个库提供三个类:一个简单的根类、一个用于常量字符串的类和一个用于协议的类。根类提供的功能在 C++、Java 等环境中是语言的一部分,另外两个类可能由编译器生成。不过,大多数时候开发者不会使用这些类,近一二十年来,几乎所有的 Objective-C 代码都使用基于 OpenStep Foundation 框架的实现。
OpenStep 是 NeXT 和 Sun 共同制定的规范,用于为跨平台应用开发提供现代面向对象框架。它定义了两个框架:Foundation Kit 和 Application Kit(通常简称为 Foundation 和 AppKit)。Foundation Kit 为开发者提供了所有应用所需的核心功能
超级会员免费看
订阅专栏 解锁全文
813

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



