Objective c 如果appl编译为本机,为什么需要Objective C运行时 新的Swift/ObjuleC,来自java、C++和C++背景。我的理解是,如果代码是非本机代码(如Java或C),则需要运行时生成中间代码,而中间代码在运行时需要一个将代码转换为机器语言的环境,我们称之为JRE这样的运行时环境

Objective c 如果appl编译为本机,为什么需要Objective C运行时 新的Swift/ObjuleC,来自java、C++和C++背景。我的理解是,如果代码是非本机代码(如Java或C),则需要运行时生成中间代码,而中间代码在运行时需要一个将代码转换为机器语言的环境,我们称之为JRE这样的运行时环境,objective-c,objective-c-runtime,Objective C,Objective C Runtime,因此,在阅读了一些关于堆栈溢出的Q和As之后,很明显Swift和Objective-C都是作为本机二进制文件编译的。但它们需要Objective-C运行时来执行它们 如果代码已经是机器语言,我不知道为什么需要运行时 它是否像一个链接到程序的库 或者该objective-C运行时是承载objective-C/Swift程序的单独环境?就像JRE一样 有人能解释一下吗 谢谢, 艾哈迈德 < P>许多编程语言依赖于,包括C++。这些由低级例程组成,以支持宿主操作系统上的编程语言模型。Objective

因此,在阅读了一些关于堆栈溢出的Q和As之后,很明显Swift和Objective-C都是作为本机二进制文件编译的。但它们需要Objective-C运行时来执行它们

如果代码已经是机器语言,我不知道为什么需要运行时

它是否像一个链接到程序的库

或者该objective-C运行时是承载objective-C/Swift程序的单独环境?就像JRE一样

有人能解释一下吗

谢谢,
艾哈迈德

< P>许多编程语言依赖于,包括C++。这些由低级例程组成,以支持宿主操作系统上的编程语言模型。Objective-C的运行库实现了动态方法查找等核心功能

Java和C需要一个运行库,它们比运行库更复杂


Hth

< P>许多编程语言依赖于,包括C++。这些由低级例程组成,以支持宿主操作系统上的编程语言模型。Objective-C的运行库实现了动态方法查找等核心功能

Java和C需要一个运行库,它们比运行库更复杂


HTH

在这种情况下,它就像一个链接到程序的库。Objective-C/Swift程序编译成机器代码,调用许多低级例程,如class_getName和objc_msgSend。运行时环境提供了这些例程。那么这个库是静态链接到程序,还是在运行时从运行它的OS X平台上获取的?它通常动态链接到/usr/lib/libobjc.A.dylib,但是有可能生成一个静态二进制文件,在没有该文件的系统上运行。在这种情况下,它就像一个链接到程序的库。Objective-C/Swift程序编译成机器代码,调用许多低级例程,如class_getName和objc_msgSend。运行时环境提供了这些例程。那么这个库是静态链接到程序,还是在运行时从运行它的OS X平台上获取的?它通常动态链接到/usr/lib/libobjc.A.dylib,但也有可能生成一个静态二进制文件,在没有该文件的系统上运行;显示为crt0,IIRC。见鬼,有人可能会说,多任务系统上的每个程序都依赖于运行时,仅仅是因为它相互勾结、相互冲突使用内核的调度程序和I/O管理等。没有运行时意味着你从零开始;根本没有系统服务!即使是一个纯C程序也会有一个运行时;显示为crt0,IIRC。见鬼,有人可能会说,多任务系统上的每个程序都依赖于运行时,仅仅是因为它相互勾结、相互冲突使用内核的调度程序和I/O管理等。没有运行时意味着你从零开始;根本没有系统服务!