cocoa_chen

二进制文件分析之常用命令

编译 iOS
一、背景介绍最近新版本审核时被拒了,Apple给出的原因是使用到了Intents的功能,但是Info.plist中并未给出使用简介导致被拒。由于我们的App并不需要使用Intents等能力,所以需要排查是哪些第三方库引入的Intents.framework。下面将介绍在分析二进制文件时常用的 ...
Read more

iOS 编译知识小结

编译 iOS
简介拖更很久了,今天水文一篇。简单介绍下iOS底层编译的相关知识,帮助我们充分理解了iOS编译的过程,相信会对我们后续的开发有一定帮助。 源码到可执行文件流程首先看一下iOS代码是如何从源码变成可执行文件的,有助于我们了解程序从编译到运行的全流程 编译器Clang会将源码XXX.m编译为目 ...
Read more

开源一款客户端研发调试用的桌面端工具:Echo

Echo

Echo是一款客户端的桌面端调试工具,旨在提高客户端的研发调试效率。目前已在Github开源,欢迎大家使用。

Read more

iOS开发笔记 第三篇

iOS
目录 自定义对象下标索引和键值索引 在podspec中屏蔽nullablity相关警告 待添加 1.自定义对象下标索引和键值索引开发中封装一些工具类时,为了接口的简洁和功能的内聚,这时候可以考虑对工具类增加自定义的下标索引和键值索引功能。 通过声明和实现以下方法来增加自定义键位下标到自定 ...
Read more

深入浅出GCD之dispatch_source

GCD
概述Dispatch Source是BSD系统内核惯有功能kqueue的包装,kqueue是在XNU内核中发生各种事件时,在应用程序编程方执行处理的技术。它的CPU负荷非常小,尽量不占用资源。当事件发生时,Dispatch Source会在指定的Dispatch Queue中执行事件的处 ...
Read more

深入浅出GCD之dispatch_once

GCD
概述dispatch_once能保证任务只会被执行一次,即使同时多线程调用也是线程安全的。常用于创建单例、swizzeld method等功能。它的功能比较简单,接下来看下使用方法和具体的原理。 使用篇1234static dispatch_once_t onceToken;dispa ...
Read more

深入浅出GCD之dispatch_group

GCD
概述dispatch_group可以将GCD的任务合并到一个组里来管理,也可以同时监听组里所有任务的执行情况。主要的API有以下几个,先看一下Dispatch Group的具体使用。 dispatch_group_create dispatch_group_enter dispatc ...
Read more

深入浅出GCD之dispatch_semaphore

GCD
概述Dispatch Semaphore是持有计数的信号,该信号是多线程编程中的计数类型信号。信号类似于过马路时的手旗,可以通过时举起手旗,不可通过时放下手旗。而在Dispatch Semaphore中使用了计数来实现该功能。计数为0时等待,计数为1或者大于1时放行。 信号量的使用比较 ...
Read more

深入浅出GCD之dispatch_queue

GCD
概述dispatch_queue可以说是GCD编程中使用频率最高的API,本篇文章主要讲一下queue的相关用法和原理,关于queue的数据结构和常用定义见上篇文章。 使用篇当我们处理耗时操作时,比如读取数据库、请求网络数据,为了避免这些耗时操作卡住UI,可将耗时任务放到子线程中,执行 ...
Read more

深入浅出GCD之基础篇

GCD
GCD介绍Grand Central Dispatch(GCD)是Apple推出的一套多线程解决方案,它拥有系统级的线程管理机制,开发者不需要再管理线程的生命周期,只需要关注于要执行的任务即可。 本系列文章会从源码层面分析GCD的原理,总结GCD的用法和需要注意的地方,因此后续的文章都会 ...
Read more
Prev Next