240 发简信
IP属地:海南
  • 120
    iOS App后台Crash类型

    后台Crash 苹果在 WWDC 2020 上的介绍,目前会导致App在后台被杀死的情况大概有以下 6 种。 1、崩溃(Crashes) 代码逻辑的Crash引发App闪退。...

  • 120
    如何在敏捷开发中推进TDD

    单元测试 单元测试(Unit Testing)又称为模块测试,是针对程序模块来进行正确性检验的测试工作。单元就是单个程序、函数、过程等,编写程序的过程中前后很可能要进行多次单...

  • 120
    iOS虚拟内存与内存分页

    虚拟内存 虚拟内存是计算机系统内存管理的一种技术,虚拟内存为每个进程提供了一个连续、私有的地址空间,它每个进程会认为自己在使用一块大的连续的内存。事实上,每个进程的内存散布在...

  • 120
    LLVM编译器架构

    编译过程 传统编译过程一般分为以下步骤。 源代码(source code)→ 预处理器(preprocessor)→ 编译器(compiler)→ 汇编程序(assemble...

  • 控制反转(IoC)容器的设计

    定义 用iOS开发环境来举例,IoC容器的核心功能负责对象创建、依赖查找和依赖注入,这些功能都需要借助运行时runtime的反射实现 使用protocol 在IoC容器中,就...

  • 控制反转

    定义 控制反转(Inversion of Control,缩写为IoC),是面向对象编程中的一种设计原则,可以用来减低计算机代码之间的耦合度。 传统意义上,Class A中用...

  • pod组件二进制开发示例

    建立组件工程 建立主workspace工程与组件的pod工程如(podLibTest) 多个模式共存 源码模式的podspec arc与non arc共存问题在组件工程比较好...

  • 120
    建立CocoaPods私有源(2)

    podspec文件 建立CocoaPods私有源的关键是编写.podspec文件,此文件是CocoaPods所使用的一种特殊,例子可以参考以下源码。 创建Spec Repo ...

  • 120
    建立CocoaPods私有源(1)

    CocoaPods简介 CocoaPods是Swift和Objective-C 项目的依赖管理器。它拥有超过61000个第三方库,超过300万个应用程序都使用CocoaPod...

  • UITableView高度优化

    设置高度的方式 UITableView的高度设置一般有以下两种方式:方式一 方式二 如果实现了以上方法后,通过rowHeight 的设置是无效的。第二种方式适用于具有多种 c...

  • 120
    【unrecognized selector 】Crash防护

    常见的Crash unrecognized selector sent to class 是iOS编程中常见的错误,从之前博文可知,iOS的方法调用最终会转化为消息发送过程...

  • NSMethodSignature与NSInvocation使用

    方法调用的方式 在iOS开发中,直接调用方法的方式有以下两种: (id)performSelector:(SEL)aSelector 使用NSInvocation对象 per...

  • 网络通讯的安全问题

    安全问题 首先App的安全问题主要包括以下三个方面 本地代码安全可以通过代码混淆,关键字符串或者重要变量加密;通过加壳防止二次打包 本地数据存储持久化数据的加密,尽量不要保存...

  • 多线程安全问题

    经典问题 因为是异步并行队列,而且str属性是非原子性的,系统会开启多条线程来执行Block代码,运行的时候,几率出现crash现象。 此时crash堆栈如下 线上出现此种C...

  • 120
    常用缓存淘汰策略FIFO、LFU、LRU

    常用缓存策略 常用的缓存淘汰策略有以下 先进先出算法(FIFO) Least Frequently Used(LFU)淘汰一定时期内被访问次数最少的页面,以次数作为参考 Le...

  • 120
    使用贝塞尔曲线插值方法对绘图进行圆滑处理

    画图 在iOS中实现绘图的技术的话,比较通用的做法是,在onTouch事件中收集到轨迹坐标点数据,然后在UIView中的drawInRect方法里面绘制每一帧画面。在draw...

  • 板凳

    autorelease与autoreleasepool

    MRC 使用ARC,开发者不再需要手动的retain/release/autorelease。编译器会自动插入对应的代码,再结合Objective C的runtime,实现自...

  • autorelease与autoreleasepool

    MRC 使用ARC,开发者不再需要手动的retain/release/autorelease。编译器会自动插入对应的代码,再结合Objective C的runtime,实现自...

  • 120
    多线程的锁与信号量

    锁 多线程中,锁大部分可以分成两种,互斥锁与自旋锁。 互斥锁 Mutex互斥锁也称互斥量 ,属于sleep-waiting类型的锁,当线程访问被锁资源时,调用者线程会休眠,此...