RunTime系统是一个动态库,它启用了Objective-C的动态特性。我的问题是:谁运行这个运行时系统?它是否始终与OS一起运行?
答案 0 :(得分:1)
运行时系统听起来像是守护进程或者一直运行运行时的东西。
不是;它只是一组实用程序例程,它们链接到您的应用程序中,编译器生成调用以实现内省,类实现和最常用的方法调用之类的内容。
每个Objective-C应用程序都有自己的运行时,每个应用程序都在自己独立的内存空间中运行,不能触及其他应用程序的内存。
换句话说,Objective-C运行时完全是被动的。除非执行一些调用它的代码,否则它什么都不做(一个例外是当ObjC在GC环境中运行时,因为GC线程会与运行时串通以清理内存)。
大多数高级语言都有某种运行时系统。甚至是C(查找crt0)。