后台Crash 苹果在 WWDC 2020 上的介绍,目前会导致App在后台被杀死的情况大概有以下 6 种。 1、崩溃(Crashes) 代码逻辑的Crash引发App闪退。...
后台Crash 苹果在 WWDC 2020 上的介绍,目前会导致App在后台被杀死的情况大概有以下 6 种。 1、崩溃(Crashes) 代码逻辑的Crash引发App闪退。...
单元测试 单元测试(Unit Testing)又称为模块测试,是针对程序模块来进行正确性检验的测试工作。单元就是单个程序、函数、过程等,编写程序的过程中前后很可能要进行多次单...
虚拟内存 虚拟内存是计算机系统内存管理的一种技术,虚拟内存为每个进程提供了一个连续、私有的地址空间,它每个进程会认为自己在使用一块大的连续的内存。事实上,每个进程的内存散布在...
编译过程 传统编译过程一般分为以下步骤。 源代码(source code)→ 预处理器(preprocessor)→ 编译器(compiler)→ 汇编程序(assemble...
定义 用iOS开发环境来举例,IoC容器的核心功能负责对象创建、依赖查找和依赖注入,这些功能都需要借助运行时runtime的反射实现 使用protocol 在IoC容器中,就...
定义 控制反转(Inversion of Control,缩写为IoC),是面向对象编程中的一种设计原则,可以用来减低计算机代码之间的耦合度。 传统意义上,Class A中用...
建立组件工程 建立主workspace工程与组件的pod工程如(podLibTest) 多个模式共存 源码模式的podspec arc与non arc共存问题在组件工程比较好...
podspec文件 建立CocoaPods私有源的关键是编写.podspec文件,此文件是CocoaPods所使用的一种特殊,例子可以参考以下源码。 创建Spec Repo ...
CocoaPods简介 CocoaPods是Swift和Objective-C 项目的依赖管理器。它拥有超过61000个第三方库,超过300万个应用程序都使用CocoaPod...
设置高度的方式 UITableView的高度设置一般有以下两种方式:方式一 方式二 如果实现了以上方法后,通过rowHeight 的设置是无效的。第二种方式适用于具有多种 c...
常见的Crash unrecognized selector sent to class 是iOS编程中常见的错误,从之前博文可知,iOS的方法调用最终会转化为消息发送过程...
方法调用的方式 在iOS开发中,直接调用方法的方式有以下两种: (id)performSelector:(SEL)aSelector 使用NSInvocation对象 per...
安全问题 首先App的安全问题主要包括以下三个方面 本地代码安全可以通过代码混淆,关键字符串或者重要变量加密;通过加壳防止二次打包 本地数据存储持久化数据的加密,尽量不要保存...
经典问题 因为是异步并行队列,而且str属性是非原子性的,系统会开启多条线程来执行Block代码,运行的时候,几率出现crash现象。 此时crash堆栈如下 线上出现此种C...
常用缓存策略 常用的缓存淘汰策略有以下 先进先出算法(FIFO) Least Frequently Used(LFU)淘汰一定时期内被访问次数最少的页面,以次数作为参考 Le...
画图 在iOS中实现绘图的技术的话,比较通用的做法是,在onTouch事件中收集到轨迹坐标点数据,然后在UIView中的drawInRect方法里面绘制每一帧画面。在draw...
板凳
autorelease与autoreleasepoolMRC 使用ARC,开发者不再需要手动的retain/release/autorelease。编译器会自动插入对应的代码,再结合Objective C的runtime,实现自...
MRC 使用ARC,开发者不再需要手动的retain/release/autorelease。编译器会自动插入对应的代码,再结合Objective C的runtime,实现自...
锁 多线程中,锁大部分可以分成两种,互斥锁与自旋锁。 互斥锁 Mutex互斥锁也称互斥量 ,属于sleep-waiting类型的锁,当线程访问被锁资源时,调用者线程会休眠,此...