代码改变世界

iOS逆向系列-tweak补充

2019-05-21 11:17 by iCoderHong, 985 阅读, 0 推荐, 收藏, 编辑
摘要:tweak加载资源 开发自己的deb插件需要加载自己的资源,比如图片资源。iOS中常用的两种加载图片资源的方式: +imageNamed:方式从程序的main bundle加载图片,由于我们自己单独开发的插架,资源是需要单独管理的。我们需要使用第二种方式,给定图片的路径去加载图片。 那么图片的存放的 阅读全文

iOS进阶四-自动释放池原理

2019-05-19 13:29 by iCoderHong, 2890 阅读, 1 推荐, 收藏, 编辑
摘要:概述 AutoreleasePool(自动释放池)是OC中的一种内存自动回收机制,它可以延迟加入AutoreleasePool中的变量release的时机。在正常情况下,创建的变量会在超出其作用域的时候release,但是如果将变量加入AutoreleasePool,那么release将延迟执行。 阅读全文

iOS进阶二-KVC

2019-05-19 12:49 by iCoderHong, 173 阅读, 0 推荐, 收藏, 编辑
摘要:概述 KVC的全程是Key-Value Coding, 俗称"键值编码",可以通过一个key来访问属性 常见的AP有 KVC设置原理 提示:通过KVC访问对象的属性赋值,不管是否存在Set方法,都是会触发KVO的监听方法的 KVO取值原理 阅读全文

iOS进阶一OC对象的本质

2019-05-19 00:27 by iCoderHong, 507 阅读, 0 推荐, 收藏, 编辑
摘要:OC对象的本质 平时编写的Object-C代码,底层实现其实都是C/C++代码。 所以Objective-C的面向对象都是基于C/C++的数据结构实现的,OC对象内部可以容纳不同数据类型的数据,因此可以推断OC对象的底层数据结构就是结构体。 为了进一步研究OC对象的本质,我们使用苹果Xcode内置的 阅读全文

构造方法

2019-05-18 23:30 by iCoderHong, 136 阅读, 0 推荐, 收藏, 编辑
摘要:对象的构造方法 创建一个对象, 我们直接通过new方法就可以创建一个OC实例对象。这个+new方法是继承NSObject获得的。其实创建对象+new方法分为两个过程的。 +alloc方法是分类内存空间,并将内存空间的地址返回,此时的对象内存空间是不可直接使用,需要调用-init进行初始化。 开发中创 阅读全文

静态库和共享库

2018-12-09 14:04 by iCoderHong, 433 阅读, 0 推荐, 收藏, 编辑
摘要:概述 如果我们有些功能要给别人用,但是又不想公开代码实现,就可以将源代码编译成库提供。库分为 和`静态库`。 在程序的链接阶段被复制到了程序中,和程序运行的时候没有关系。 在链接阶段没有被复制到程序中,而是程序在运行时由系统动态加载到内存中供程序调用。使用动态库的优点是系统只需载入一次动态库,不同的 阅读全文

窥探C语言程序的编译、链接与.h文件

2018-12-09 12:00 by iCoderHong, 2658 阅读, 1 推荐, 收藏, 编辑
摘要:概述 C语言程序从源文件经过编译、链接生成可执行文件。那么编译与链接分别做了什么? 开发中为什么使用.h编写函数的声明?接下来使用案例说清楚为什么这样编写代码。 C语言程序的编译和链接 C语言程序从源文件到生成可执行程序需要经过编译器的预处理,汇编、编译、链接。这里简化为编译、链接两个阶段 编译: 阅读全文

函数调用本质

2018-12-07 10:50 by iCoderHong, 1436 阅读, 0 推荐, 收藏, 编辑
摘要:函数调用的本质 从反汇编角度窥探平时开发调用的函数或者方法的本质。平时我们编写的高级语言最终通过编译器、链接生成机CPU执行的机器指令。 不同的CPU对应着不同着机器指令,并且每一条机器指令对应着一条汇编。 先看一个最简单的C语言函数,这里主要通过C++来反编译分析汇编指令。 可以通过反汇编看到调用 阅读全文

互联网协议入门

2018-12-04 13:11 by iCoderHong, 157 阅读, 0 推荐, 收藏, 编辑
摘要:概述 我们每天都在使用互联网,比如使用微信发送消息,浏览网页,手机看视频。然而,互联网的必要条件就是实现网络设备通信,也就是设备之间怎么收发消息。要想网络设备通信,就需要定制一套协议,彼此都能识别通信的内容,于是"互联网通信协议(Internet Protocol Suite)"就诞生了。 "互联网 阅读全文

iOS开发系列-Block本质篇

2018-12-02 20:14 by iCoderHong, 414 阅读, 0 推荐, 收藏, 编辑
摘要:概述 在iOS开发中Block使用比较广泛,对于使用以及一些常规的技术点这里不再赘述,主要利用C++角度分析Block内部数据底层实现,解开开发中为什么这样编写代码解决问题。 Block底层结构窥探 接下来编写一个Block,利用 编译器指令可以将我们编写的OC代码转换成C++代码,更好的看清Blo 阅读全文
上一页 1 2 3 4 5 6 7 ··· 11 下一页