iOS资料ios developers

objc -编译Runtime 源码

2017-02-14  本文已影响423人  aofeilin

https://github.com/opensource-apple

Objective-C是基于C加入了面向对象特性和消息转发机制的动态语言,除编译器之外,还需用Runtime系统来动态创建类和对象,进行消息发送和转发。本文作者通过分析Apple开源的Runtime代码来深入理解OC的Runtime机制。

http://www.csdn.net/article/2015-07-06/2825133-objective-c-runtime/1

而这篇文章的目的,就是教你从苹果提供的Runtime源码,编译出自己的libobjc.A.dylib。进而你可以调试它,深入了解它。http://blog.csdn.net/wotors/article/details/52489464

1-0

1.下载你电脑对应的objc-runtime

2.

<1>如何搜索到objc4 首先https://opensource.apple.com/     iOS公开源码也少,基本上看MAC里面的源码就可以了。

<2>点击电脑对应的版本,然后com+F搜索objc4    我这里查询到是objc4-706  然后点击,页面显示https://opensource.apple.com/source/objc4/objc4-706/  然后https://opensource.apple.com/source/objc4可以看到不同的版本。

<3>tarballs  压缩包,把这里改成tarballs  就可以看到所有的压缩包。得到打包的版本.下载对应的版本;

http://opensource.apple.com/tarballs/objc4/

https://opensource.apple.com/tarballs/CF/

<4>objc4  Libc  dyld  libauto libclosure  libdispatch libpthread xnu还差一个launchd项目,在此目录搜不到。于是,直接去Source目录Tarballs目录⌘+F可搜索到。那就在这里下载个最新版本吧,没有我们要的头文件时再下个旧版就行了。

(1)Libc 库libc是Linux下的ANSI C的函数库。

(2)XNU是内核,就像linux一样,当然,XNU是由Mach、FreeBS D内核以及苹果自己的驱动框架组合而来的。Darwin是操作系统,当然只是基础部分,包括了内核和基本的工具和库,可以类比为FreeBSD或者ArchLinux那样。

上一篇下一篇

猜你喜欢

热点阅读