介绍-runtime学习一

2020-03-04  本文已影响0人  好久不见_47b7

runtime介绍

1.什么是rumtime

The Objective-C language defers as many decisions as it can from compile time and link time to runtime. Whenever possible, it does things dynamically. This means that the language requires not just a compiler, but also a runtime system to execute the compiled code. The runtime system acts as a kind of operating system for the Objective-C language; it’s what makes the language work.

Objective-C语言把许多从编译时和链接时的决策推迟到运行时。只要有可能,总是动态的处理。这就意味着,Objective-C不仅需要编译器而且需要一个运行时系统来编译代码。运行时系统作为Objective-C语言的一种操作系统,使Objective-C语言具有动态性。

2.runtime版本及平台

不同的Objective-C版本运行在不同的平台

Legacy and Modern Versions

Objective-C runtime有两个版本LegacyModern.Modern版本在Objective-C 2.0中引用,其中包含了许多新的特性。Legacy版本在Obective-C 1.0中被使用。

两个版本的主要区别:

平台

3.与runtime的交互方式

与runtime系统进行交互有三种方式:

  1. 通过使用Objective-C源代码方式
  2. 通过使用NSObject类里边一些API方式
  3. 通过使用runtime API的方式

使用源代码方式:通过编译Objective-C代码,编译器会自动创建实现动态语言特性的数据结构及函数的调用。当编译后的代码运行后,runtime系统会自动的工作起来。

使用NSObject类中的API方式:Cocoa中大多数的类都继承于NSObject,所以大多数类都继承了NSObject的方法。NSObject中一些方法会调用runtimeAPI.比如:isKindOfClass: , isMemberOfClass:,conformsToProtocol:,methodForSelector:等方法。

直接使用runtime API的方式:runtime是由c、c++及汇编写成的一组API,为oc代码提供运行时功能。当我们直接使用runtime所提供的API接口便可以和runtime系统进行交互。

上一篇 下一篇

猜你喜欢

热点阅读